/*****************************************************************************
*  Copyright Statement:
*  --------------------
*  This software is protected by Copyright and the information contained
*  herein is confidential. The software may not be copied and the information
*  contained herein may not be used or disclosed except with the written
*  permission of MediaTek Inc. (C) 2005
*
*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
*
*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
*
*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
*
*****************************************************************************/
/*****************************************************************************
 * Filename:
 * ---------
 *  Ufo.c
 *
 * Project:
 * --------
 *  Maui
 *
 * Description:
 * ------------
 *  Game Ufo
 *
 * Author:
 * -------
 * -------
 * -------
 *
 *============================================================================
 *             HISTORY
 * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
 *------------------------------------------------------------------------------
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 *------------------------------------------------------------------------------
 * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
 *============================================================================
 ****************************************************************************/

#include "mmi_features.h"
#include "GameDefs.h"

#ifdef __MMI_GAME_UFO__
#include "GameInc.h"
#include "UfoProts.h"
#include "mmi_rp_app_games_def.h"

#ifdef __MMI_GAME_MULTI_LANGUAGE_SUPPORT__      //added for multi-language
#include "GameProts.h"
#endif


/***************************************************************************** 
* Define
*****************************************************************************/
#if defined(__MMI_MAINLCD_128X160__)
#define MMI_GX_UFO_LCD_HEIGHT                (160)
#define MMI_GX_UFO_LCD_WIDTH                 (128)
#elif defined(__MMI_MAINLCD_128X128__)
#define MMI_GX_UFO_LCD_HEIGHT                (128)
#define MMI_GX_UFO_LCD_WIDTH                 (128)
#elif defined(__MMI_MAINLCD_176X220__)
#define MMI_GX_UFO_LCD_HEIGHT                (220)
#define MMI_GX_UFO_LCD_WIDTH                 (176)
#endif 

#if defined(__MMI_MAINLCD_128X160__) || defined(__MMI_MAINLCD_128X128__)
#define MMI_GX_UFO_FIGHTER_SPEED             (5)
#define MMI_GX_UFO_BACKGROUND_SPEED          (2)
#define MMI_GX_UFO_ORIGIN                    (10)
#define MMI_GX_UFO_ENERGY_UNIT_WIDTH         (5)
#define MMI_GX_UFO_DIGIT_WIDTH               (5)
#define MMI_GX_UFO_TILE_HEIGHT               (40)       /* bg_img: 128x240 thus 128x40 per tile */
#define MMI_GX_UFO_ROLE_WIDTH                (15)
#define MMI_GX_UFO_ROLE_HEIGHT               (16)
#define MMI_GX_UFO_BULLET_SPEED              (MMI_GX_UFO_FIGHTER_SPEED)
#define MMI_GX_UFO_BULLET_WIDTH              (5)
#define MMI_GX_UFO_BULLET_HEIGHT             (8)
#define MMI_GX_UFO_BOSS_WIDTH                (20)
#define MMI_GX_UFO_BOSS_HEIGHT               (20)
#define MMI_GX_UFO_BOSS_BULLET_WIDTH         (4)
#define MMI_GX_UFO_BOSS_BULLET_HEIGHT        (12)
#define MMI_GX_UFO_ENEMY_BULLET_HEIGHT       (6)
#define MMI_GX_UFO_ENEMY_BULLET_WIDTH        (6)
#define MMI_GX_UFO_ENEMY_WIDTH               (13)
#define MMI_GX_UFO_ENEMY_HEIGHT              (10)
#define MMI_GX_UFO_ENEMY_BULLET_SPEED        (3)
#define MMI_GX_UFO_TREASURE_SPEED            (MMI_GX_UFO_FIGHTER_SPEED)
#define MMI_GX_UFO_TREASURE_HEIGHT           (12)
#define MMI_GX_UFO_TREASURE_WIDTH            (12)
#elif defined(__MMI_MAINLCD_176X220__)
#define MMI_GX_UFO_FIGHTER_SPEED             (7)
#define MMI_GX_UFO_BACKGROUND_SPEED          (3)
#define MMI_GX_UFO_ORIGIN                    (13)
#define MMI_GX_UFO_ENERGY_UNIT_WIDTH         (6)
#define MMI_GX_UFO_DIGIT_WIDTH               (6)
#define MMI_GX_UFO_TILE_HEIGHT               (55)       /* bg_img: 128x240 thus 128x40 per tile */
#define MMI_GX_UFO_ROLE_WIDTH                (20)
#define MMI_GX_UFO_ROLE_HEIGHT               (21)
#define MMI_GX_UFO_BULLET_SPEED              (MMI_GX_UFO_FIGHTER_SPEED)
#define MMI_GX_UFO_BULLET_WIDTH              (6)
#define MMI_GX_UFO_BULLET_HEIGHT             (10)
#define MMI_GX_UFO_BOSS_WIDTH                (26)
#define MMI_GX_UFO_BOSS_HEIGHT               (26)
#define MMI_GX_UFO_BOSS_BULLET_WIDTH         (5)
#define MMI_GX_UFO_BOSS_BULLET_HEIGHT        (16)
#define MMI_GX_UFO_ENEMY_BULLET_HEIGHT       (8)
#define MMI_GX_UFO_ENEMY_BULLET_WIDTH        (8)
#define MMI_GX_UFO_ENEMY_WIDTH               (17)
#define MMI_GX_UFO_ENEMY_HEIGHT              (13)
#define MMI_GX_UFO_ENEMY_BULLET_SPEED        (4)
#define MMI_GX_UFO_TREASURE_SPEED            (MMI_GX_UFO_FIGHTER_SPEED)
#define MMI_GX_UFO_TREASURE_HEIGHT           (16)
#define MMI_GX_UFO_TREASURE_WIDTH            (16)
#endif 

#define MMI_GX_UFO_ENERGY_UNIT_COUNT         (4)
#define MMI_GX_UFO_TRANSPARENT_COLOR         (GDI_COLOR_BLUE)
#define MMI_GX_UFO_TILE_NUMBER               (5)        /* how many tile will show on display a time */
#define MMI_GX_UFO_BACKGROUND_LIST_NUMBER    (6)        /* use 6 tiles to make up backgruond image */
#define MMI_GX_UFO_BULLET_1                  (1)
#define MMI_GX_UFO_BULLET_2                  (2)
#define MMI_GX_UFO_BULLET_3                  (3)
#define MMI_GX_UFO_BULLET_INTERVAL           (MMI_GX_UFO_BULLET_HEIGHT / MMI_GX_UFO_BULLET_SPEED + 2)
#define MMI_GX_UFO_BULLET_COUNT              (MMI_GX_UFO_LCD_HEIGHT / MMI_GX_UFO_BULLET_SPEED / MMI_GX_UFO_BULLET_INTERVAL + 3)
#define MMI_GX_UFO_MOVE_TYPE_1               (0)        /* vertical */
#define MMI_GX_UFO_MOVE_TYPE_2               (1)        /* straight with slope */
#define MMI_GX_UFO_MOVE_TYPE_3               (2)        /* straight with -slope (compared with above) */
#define MMI_GX_UFO_MOVE_TYPE_4               (3)        /* zig-zag */
#define MMI_GX_UFO_MOVE_TYPE_5               (4)        /* zig-zag in another direction (compared with above) */
#define MMI_GX_UFO_MOVE_TYPE_6               (5)        /* U turn */
#define MMI_GX_UFO_MOVE_TYPE_7               (6)        /* U turn in another direction (compared with above */
#define MMI_GX_UFO_MOVE_TYPE_COUNT           (7)
#define MMI_GX_UFO_ATTACK_TYPE_1             (0)
#define MMI_GX_UFO_ATTACK_TYPE_2             (1)
#define MMI_GX_UFO_ATTACK_TYPE_3             (2)
#define MMI_GX_UFO_ATTACK_TYPE_COUNT         (3)
#define MMI_GX_UFO_ENEMY_COUNT               (16)
#define MMI_GX_UFO_ENEMY_BULLET_COUNT        (3 * MMI_GX_UFO_ENEMY_COUNT)
#define MMI_GX_UFO_ENEMY_INTERVAL            (7)
#define MMI_GX_UFO_ENEMY_IMAGE_COUNT         (4)
#define MMI_GX_UFO_ENEMY_BULLET_IMAGE_COUNT  (4)
#define MMI_GX_UFO_ENEMY_LIFE_BASE           (1)
#define MMI_GX_UFO_INVINCIBLE_INTERVAL       (60)
#define MMI_GX_UFO_NORMAL_STATE              (0)
#define MMI_GX_UFO_HIT_STATE                 (1)
#define MMI_GX_UFO_EXPLODING_STATE_0         (2)
#define MMI_GX_UFO_EXPLODING_STATE_1         (3)
#define MMI_GX_UFO_EXPLODING_STATE_2         (4)
#define MMI_GX_UFO_EXPLODING_STATE_3         (5)
#define MMI_GX_UFO_EXPLODING_STATE_END       (6)
#define MMI_GX_UFO_ENEMY_SCORE               (1)
#define MMI_GX_UFO_ENERGY_TREASURE           (1)
#define MMI_GX_UFO_WEAPON_TREASURE           (2)
#define MMI_GX_UFO_BOMB_TREASURE             (3)
#define MMI_GX_UFO_INVINCIBLE_TREASURE       (4)
#define MMI_GX_UFO_ENEMY_PATTERN_NUMBER      (3)
#define MMI_GX_UFO_STAGE_INTERVAL            (300)

/***************************************************************************** 
* Macro
*****************************************************************************/
#define UPDATE_FIGHTER_POSITION()                                                                                          \
{                                                                                                                          \
   g_gx_ufo_context.fighter_old_position_y = g_gx_ufo_context.fighter_position_y;                                          \
   g_gx_ufo_context.fighter_old_position_x = g_gx_ufo_context.fighter_position_x;                                          \
   /* when the fighter is alive, it move normally */                                                                       \
   if (g_gx_ufo_context.fighter_state == MMI_GX_UFO_NORMAL_STATE || g_gx_ufo_context.fighter_state == MMI_GX_UFO_HIT_STATE)\
   {                                                                                                                       \
      if (g_gx_ufo_context.up_key_pressed != FALSE)                                                                        \
      {                                                                                                                    \
         g_gx_ufo_context.fighter_position_y = g_gx_ufo_context.fighter_position_y - MMI_GX_UFO_FIGHTER_SPEED;             \
         if (g_gx_ufo_context.fighter_position_y < MMI_GX_UFO_ORIGIN)                                                      \
         {                                                                                                                 \
            g_gx_ufo_context.fighter_position_y = MMI_GX_UFO_ORIGIN;                                                       \
         }                                                                                                                 \
      }                                                                                                                    \
      if (g_gx_ufo_context.down_key_pressed != FALSE)                                                                      \
      {                                                                                                                    \
         g_gx_ufo_context.fighter_position_y = g_gx_ufo_context.fighter_position_y + MMI_GX_UFO_FIGHTER_SPEED;             \
         if (g_gx_ufo_context.fighter_position_y > MMI_GX_UFO_LCD_HEIGHT - MMI_GX_UFO_ROLE_HEIGHT - 1)                     \
         {                                                                                                                 \
            g_gx_ufo_context.fighter_position_y = MMI_GX_UFO_LCD_HEIGHT - MMI_GX_UFO_ROLE_HEIGHT - 1;                      \
         }                                                                                                                 \
      }                                                                                                                    \
      if (g_gx_ufo_context.left_key_pressed != FALSE)                                                                      \
      {                                                                                                                    \
         g_gx_ufo_context.fighter_position_x = g_gx_ufo_context.fighter_position_x - MMI_GX_UFO_FIGHTER_SPEED;             \
         if (g_gx_ufo_context.fighter_position_x < 0)                                                                      \
         {                                                                                                                 \
            g_gx_ufo_context.fighter_position_x = 0;                                                                       \
         }                                                                                                                 \
      }                                                                                                                    \
      if (g_gx_ufo_context.right_key_pressed != FALSE)                                                                     \
      {                                                                                                                    \
         g_gx_ufo_context.fighter_position_x = g_gx_ufo_context.fighter_position_x + MMI_GX_UFO_FIGHTER_SPEED;             \
         if (g_gx_ufo_context.fighter_position_x > MMI_GX_UFO_LCD_WIDTH - MMI_GX_UFO_ROLE_WIDTH - 1)                       \
         {                                                                                                                 \
            g_gx_ufo_context.fighter_position_x = MMI_GX_UFO_LCD_WIDTH - MMI_GX_UFO_ROLE_WIDTH - 1;                        \
         }                                                                                                                 \
      }                                                                                                                    \
   }                                                                                                                       \
   /* when the fighter is exploding, its explosion moving speed is identical to the background */                          \
   else                                                                                                                    \
   {                                                                                                                       \
      g_gx_ufo_context.fighter_position_y = g_gx_ufo_context.fighter_position_y + MMI_GX_UFO_BACKGROUND_SPEED;             \
      /* when 2 seconds past after the explosion ended */                                                                  \
      if (g_gx_ufo_context.tick - g_gx_ufo_context.fighter_dying_time > 25)                                                \
      {                                                                                                                    \
         mmi_gx_ufo_gameover();                                                                                            \
      }                                                                                                                    \
   }                                                                                                                       \
}                                                                                                                          \

#define NEW_ENEMY_BULLET()                                                                                  \
{                                                                                                           \
   /* maintain the data structure */                                                                        \
   /* when the list is not empty */                                                                         \
   if (g_gx_ufo_context.first_enemy_bullet != NULL)                                                         \
   {                                                                                                        \
      g_gx_ufo_context.last_enemy_bullet->next = g_gx_ufo_context.first_empty_enemy_bullet_list;            \
      g_gx_ufo_context.first_empty_enemy_bullet_list->previous = g_gx_ufo_context.last_enemy_bullet;        \
      g_gx_ufo_context.last_enemy_bullet = g_gx_ufo_context.first_empty_enemy_bullet_list;                  \
      g_gx_ufo_context.first_empty_enemy_bullet_list = g_gx_ufo_context.first_empty_enemy_bullet_list->next;\
   }                                                                                                        \
   /* when the list is empty */                                                                             \
   else                                                                                                     \
   {                                                                                                        \
      g_gx_ufo_context.first_enemy_bullet = g_gx_ufo_context.first_empty_enemy_bullet_list;                 \
      g_gx_ufo_context.last_enemy_bullet = g_gx_ufo_context.first_empty_enemy_bullet_list;                  \
      g_gx_ufo_context.first_empty_enemy_bullet_list = g_gx_ufo_context.first_empty_enemy_bullet_list->next;\
   }                                                                                                        \
   g_gx_ufo_context.last_enemy_bullet->next = NULL;                                                         \
   /* initialize the data of the bullet */                                                                  \
   g_gx_ufo_context.last_enemy_bullet->image_offset = rand() % MMI_GX_UFO_ENEMY_BULLET_IMAGE_COUNT;         \
   g_gx_ufo_context.last_enemy_bullet->x = enemy->x + enemy_width / 2 - MMI_GX_UFO_ENEMY_BULLET_WIDTH / 2;  \
   g_gx_ufo_context.last_enemy_bullet->y = enemy->y + enemy_height;                                         \
   /* if the enemy is in attack type 2, then the bullet will simply go down */                              \
   if (enemy->attack_type == MMI_GX_UFO_ATTACK_TYPE_2)                                                      \
   {                                                                                                        \
      g_gx_ufo_context.last_enemy_bullet->vector_x = 0;                                                     \
      g_gx_ufo_context.last_enemy_bullet->vector_y = MMI_GX_UFO_ENEMY_BULLET_SPEED;                         \
   }                                                                                                        \
   /* if the enemy is in attack type 3, then the bullet will roughly trace the fighter */                   \
   else if (enemy->attack_type == MMI_GX_UFO_ATTACK_TYPE_3)                                                 \
   {                                                                                                        \
      /* if the fighter and the enemy are on the same horizontal line */                                    \
      if (enemy->y == g_gx_ufo_context.fighter_position_y)                                                  \
      {                                                                                                     \
         /* if the fighter is at right side */                                                              \
         if (g_gx_ufo_context.fighter_position_x > enemy->x)                                                \
         {                                                                                                  \
            g_gx_ufo_context.last_enemy_bullet->vector_x = MMI_GX_UFO_ENEMY_BULLET_SPEED;                   \
         }                                                                                                  \
         else                                                                                               \
         {                                                                                                  \
            g_gx_ufo_context.last_enemy_bullet->vector_x = -MMI_GX_UFO_ENEMY_BULLET_SPEED;                  \
         }                                                                                                  \
      }                                                                                                     \
      /* if the fighter and the enemy are on the same vertical line */                                      \
      else if (enemy->x == g_gx_ufo_context.fighter_position_x)                                             \
      {                                                                                                     \
         /* if the fighter is at lower side */                                                              \
         if (g_gx_ufo_context.fighter_position_y > enemy->y)                                                \
         {                                                                                                  \
            g_gx_ufo_context.last_enemy_bullet->vector_y = MMI_GX_UFO_ENEMY_BULLET_SPEED;                   \
         }                                                                                                  \
         else                                                                                               \
         {                                                                                                  \
            g_gx_ufo_context.last_enemy_bullet->vector_y = -MMI_GX_UFO_ENEMY_BULLET_SPEED;                  \
         }                                                                                                  \
      }                                                                                                     \
      /* other case */                                                                                      \
      else                                                                                                  \
      {                                                                                                     \
         offset_x = g_gx_ufo_context.fighter_position_x - enemy->x;                                         \
         offset_y = g_gx_ufo_context.fighter_position_y - enemy->y;                                         \
         if (offset_x > 0 && offset_y > 0)                                                                  \
         {                                                                                                  \
            if (offset_x > offset_y)                                                                        \
            {                                                                                               \
               g_gx_ufo_context.last_enemy_bullet->vector_x = (MMI_GX_UFO_ENEMY_BULLET_SPEED + 1) / 1;      \
               g_gx_ufo_context.last_enemy_bullet->vector_y = (MMI_GX_UFO_ENEMY_BULLET_SPEED - 1) / 1;      \
            }                                                                                               \
            else                                                                                            \
            {                                                                                               \
               g_gx_ufo_context.last_enemy_bullet->vector_x = (MMI_GX_UFO_ENEMY_BULLET_SPEED - 1) / 1;      \
               g_gx_ufo_context.last_enemy_bullet->vector_y = (MMI_GX_UFO_ENEMY_BULLET_SPEED + 1) / 1;      \
            }                                                                                               \
         }                                                                                                  \
         else if (offset_x > 0 && offset_y < 0)                                                             \
         {                                                                                                  \
            if (offset_x > -offset_y)                                                                       \
            {                                                                                               \
               g_gx_ufo_context.last_enemy_bullet->vector_x = (MMI_GX_UFO_ENEMY_BULLET_SPEED + 1) / 1;      \
               g_gx_ufo_context.last_enemy_bullet->vector_y = -(MMI_GX_UFO_ENEMY_BULLET_SPEED - 1) / 1;     \
            }                                                                                               \
            else                                                                                            \
            {                                                                                               \
               g_gx_ufo_context.last_enemy_bullet->vector_x = (MMI_GX_UFO_ENEMY_BULLET_SPEED - 1) / 1;      \
               g_gx_ufo_context.last_enemy_bullet->vector_y = -(MMI_GX_UFO_ENEMY_BULLET_SPEED + 1) / 1;     \
            }                                                                                               \
         }                                                                                                  \
         else if (offset_x < 0 && offset_y > 0)                                                             \
         {                                                                                                  \
            if (-offset_x > offset_y)                                                                       \
            {                                                                                               \
               g_gx_ufo_context.last_enemy_bullet->vector_x = -(MMI_GX_UFO_ENEMY_BULLET_SPEED + 1) / 1;     \
               g_gx_ufo_context.last_enemy_bullet->vector_y = (MMI_GX_UFO_ENEMY_BULLET_SPEED - 1) / 1;      \
            }                                                                                               \
            else                                                                                            \
            {                                                                                               \
               g_gx_ufo_context.last_enemy_bullet->vector_x = -(MMI_GX_UFO_ENEMY_BULLET_SPEED - 1) / 1;     \
               g_gx_ufo_context.last_enemy_bullet->vector_y = (MMI_GX_UFO_ENEMY_BULLET_SPEED + 1) / 1;      \
            }                                                                                               \
         }                                                                                                  \
         else if (offset_x < 0 && offset_y < 0)                                                             \
         {                                                                                                  \
            if (-offset_x > -offset_y)                                                                      \
            {                                                                                               \
               g_gx_ufo_context.last_enemy_bullet->vector_x = -(MMI_GX_UFO_ENEMY_BULLET_SPEED + 1) / 1;     \
               g_gx_ufo_context.last_enemy_bullet->vector_y = -(MMI_GX_UFO_ENEMY_BULLET_SPEED - 1) / 1;     \
            }                                                                                               \
            else                                                                                            \
            {                                                                                               \
               g_gx_ufo_context.last_enemy_bullet->vector_x = -(MMI_GX_UFO_ENEMY_BULLET_SPEED - 1) / 1;     \
               g_gx_ufo_context.last_enemy_bullet->vector_y = -(MMI_GX_UFO_ENEMY_BULLET_SPEED + 1) / 1;     \
            }                                                                                               \
         }                                                                                                  \
      }                                                                                                     \
   }                                                                                                        \
   g_gx_ufo_context.last_enemy_bullet->old_x = g_gx_ufo_context.last_enemy_bullet->x;                       \
   g_gx_ufo_context.last_enemy_bullet->old_y = g_gx_ufo_context.last_enemy_bullet->y;                       \
}                                                                                                           \

#define NEW_FIGHTER_BULLET()                                                                              \
{                                                                                                         \
   /* maintain the data structure */                                                                      \
   /* when the list is not empty */                                                                       \
   if (g_gx_ufo_context.first_bullet != NULL)                                                             \
   {                                                                                                      \
      g_gx_ufo_context.last_bullet->next = g_gx_ufo_context.first_empty_bullet_list;                      \
      g_gx_ufo_context.first_empty_bullet_list->previous = g_gx_ufo_context.last_bullet;                  \
      g_gx_ufo_context.last_bullet = g_gx_ufo_context.first_empty_bullet_list;                            \
      g_gx_ufo_context.first_empty_bullet_list = g_gx_ufo_context.first_empty_bullet_list->next;          \
   }                                                                                                      \
   /* when the list is empty */                                                                           \
   else                                                                                                   \
   {                                                                                                      \
      g_gx_ufo_context.first_bullet = g_gx_ufo_context.first_empty_bullet_list;                           \
      g_gx_ufo_context.last_bullet = g_gx_ufo_context.first_empty_bullet_list;                            \
      g_gx_ufo_context.first_empty_bullet_list = g_gx_ufo_context.first_empty_bullet_list->next;          \
   }                                                                                                      \
   g_gx_ufo_context.last_bullet->next = NULL;                                                             \
                                                                                                          \
   /* initialize the data of the bullet */                                                                \
   g_gx_ufo_context.last_bullet->type = g_gx_ufo_context.fighter_weapon;                                  \
   g_gx_ufo_context.last_bullet->x = mmi_gx_ufo_get_bullet_position_x(g_gx_ufo_context.last_bullet->type);\
   g_gx_ufo_context.last_bullet->y = mmi_gx_ufo_get_bullet_position_y();                                  \
   g_gx_ufo_context.last_bullet->old_x = g_gx_ufo_context.last_bullet->x;                                 \
   g_gx_ufo_context.last_bullet->old_y = g_gx_ufo_context.last_bullet->y;                                 \
}                                                                                                         \

#define COPY_ENEMY_DATA(target_enemy, source_enemy)        \
{                                                          \
   target_enemy->image_offset = source_enemy->image_offset;\
   target_enemy->move_type = source_enemy->move_type;      \
   target_enemy->vector_x = source_enemy->vector_x;        \
   target_enemy->attack_type = source_enemy->attack_type;  \
   target_enemy->life = source_enemy->life;                \
   target_enemy->x = source_enemy->x;                      \
   target_enemy->y = source_enemy->y;                      \
   target_enemy->old_x = source_enemy->old_x;              \
   target_enemy->old_y = source_enemy->old_y;              \
   target_enemy->state = source_enemy->state;              \
}                                                          \

#define NEW_ENEMY()                                                                                                           \
{                                                                                                                             \
   /* maintain the data structure */                                                                                          \
   /* when the list is not empty */                                                                                           \
   if (g_gx_ufo_context.first_enemy != NULL)                                                                                  \
   {                                                                                                                          \
      g_gx_ufo_context.last_enemy->next = g_gx_ufo_context.first_empty_enemy_list;                                            \
      g_gx_ufo_context.first_empty_enemy_list->previous = g_gx_ufo_context.last_enemy;                                        \
      g_gx_ufo_context.last_enemy = g_gx_ufo_context.first_empty_enemy_list;                                                  \
      g_gx_ufo_context.first_empty_enemy_list = g_gx_ufo_context.first_empty_enemy_list->next;                                \
   }                                                                                                                          \
   /* when the list is empty */                                                                                               \
   else                                                                                                                       \
   {                                                                                                                          \
      g_gx_ufo_context.first_enemy = g_gx_ufo_context.first_empty_enemy_list;                                                 \
      g_gx_ufo_context.last_enemy = g_gx_ufo_context.first_empty_enemy_list;                                                  \
      g_gx_ufo_context.first_empty_enemy_list = g_gx_ufo_context.first_empty_enemy_list->next;                                \
   }                                                                                                                          \
                                                                                                                              \
   /* initialize the data of the enemy */                                                                                     \
   /* when the enemy is just a normal enemy, not a boss */                                                                    \
   if (g_gx_ufo_context.is_boss_on != TRUE)                                                                                   \
   {                                                                                                                          \
      /* it's the first enemy of the enemy series */                                                                          \
      if (g_gx_ufo_context.enemy_pattern_number == 0)                                                                         \
      {                                                                                                                       \
         /* determine how many enemies there are in this series */                                                            \
         g_gx_ufo_context.enemy_pattern_number = rand() % MMI_GX_UFO_ENEMY_PATTERN_NUMBER;                                    \
                                                                                                                              \
         g_gx_ufo_context.last_enemy->image_offset = rand() % MMI_GX_UFO_ENEMY_IMAGE_COUNT;                                   \
         g_gx_ufo_context.last_enemy->move_type = rand() % MMI_GX_UFO_MOVE_TYPE_COUNT;                                        \
         if (g_gx_ufo_context.last_enemy->move_type == MMI_GX_UFO_MOVE_TYPE_4)                                                \
         {                                                                                                                    \
            g_gx_ufo_context.last_enemy->vector_x = 3;                                                                        \
         }                                                                                                                    \
         else if (g_gx_ufo_context.last_enemy->move_type == MMI_GX_UFO_MOVE_TYPE_5)                                           \
         {                                                                                                                    \
            g_gx_ufo_context.last_enemy->vector_x = -3;                                                                       \
         }                                                                                                                    \
         /* for the first 30 sec., the enemy is in attack mode 1 */                                                           \
         if (g_gx_ufo_context.tick < MMI_GX_UFO_STAGE_INTERVAL)                                                               \
         {                                                                                                                    \
            g_gx_ufo_context.last_enemy->attack_type = MMI_GX_UFO_ATTACK_TYPE_1;                                              \
         }                                                                                                                    \
         /* between 30 sec. and 60 sec., it's in attack mdoe 2 */                                                             \
         else if (g_gx_ufo_context.tick >= MMI_GX_UFO_STAGE_INTERVAL && g_gx_ufo_context.tick < MMI_GX_UFO_STAGE_INTERVAL * 2)\
         {                                                                                                                    \
            g_gx_ufo_context.last_enemy->attack_type = MMI_GX_UFO_ATTACK_TYPE_2;                                              \
         }                                                                                                                    \
         /* after 60 sec., it enters attack mdoe 3 */                                                                         \
         else if (g_gx_ufo_context.tick >= MMI_GX_UFO_STAGE_INTERVAL * 2)                                                     \
         {                                                                                                                    \
            g_gx_ufo_context.last_enemy->attack_type = MMI_GX_UFO_ATTACK_TYPE_3;                                              \
         }                                                                                                                    \
                                                                                                                              \
         g_gx_ufo_context.last_enemy->starting_time = g_gx_ufo_context.tick;                                                  \
         /* the life of enemy is about MMI_GX_UFO_ENEMY_LIFE_BASE to MMI_GX_UFO_ENEMY_LIFE_BASE + 1 */                        \
         g_gx_ufo_context.last_enemy->life = g_gx_ufo_context.stage_count * MMI_GX_UFO_ENEMY_LIFE_BASE + rand() % 2;          \
         g_gx_ufo_context.last_enemy->x = mmi_gx_ufo_get_enemy_position_x(g_gx_ufo_context.last_enemy->move_type);            \
         g_gx_ufo_context.last_enemy->y = 0;                                                                                  \
         g_gx_ufo_context.last_enemy->old_x = g_gx_ufo_context.last_enemy->x;                                                 \
         g_gx_ufo_context.last_enemy->old_y = g_gx_ufo_context.last_enemy->y;                                                 \
         g_gx_ufo_context.last_enemy->state = MMI_GX_UFO_NORMAL_STATE;                                                        \
         /* copy the information of this enemy for later use (to set up the next enemy in this series) */                     \
         COPY_ENEMY_DATA(g_gx_ufo_context.enemy_model, g_gx_ufo_context.last_enemy);                                          \
      }                                                                                                                       \
      /* it's the enemy in a series other than the first one */                                                               \
      else                                                                                                                    \
      {                                                                                                                       \
         g_gx_ufo_context.enemy_pattern_number = g_gx_ufo_context.enemy_pattern_number - 1;                                   \
         g_gx_ufo_context.last_enemy->starting_time = g_gx_ufo_context.tick;                                                  \
         /* copy the information needed of the first enemy of this series to this new enemy */                                \
         COPY_ENEMY_DATA(g_gx_ufo_context.last_enemy, g_gx_ufo_context.enemy_model);                                          \
      }                                                                                                                       \
   }                                                                                                                          \
   /* the new enermy is a boss */                                                                                             \
   else                                                                                                                       \
   {                                                                                                                          \
      g_gx_ufo_context.last_enemy->image_offset = IMG_ID_GX_UFO_BOSS - IMG_ID_GX_UFO_ENEMY_1;                                 \
      g_gx_ufo_context.last_enemy->move_type = rand() % MMI_GX_UFO_MOVE_TYPE_COUNT;                                           \
      if (g_gx_ufo_context.last_enemy->move_type == MMI_GX_UFO_MOVE_TYPE_4)                                                   \
      {                                                                                                                       \
         g_gx_ufo_context.last_enemy->vector_x = 4;                                                                           \
      }                                                                                                                       \
      else if (g_gx_ufo_context.last_enemy->move_type == MMI_GX_UFO_MOVE_TYPE_5)                                              \
      {                                                                                                                       \
         g_gx_ufo_context.last_enemy->vector_x = -4;                                                                          \
      }                                                                                                                       \
      g_gx_ufo_context.last_enemy->attack_type = MMI_GX_UFO_ATTACK_TYPE_3;                                                    \
      g_gx_ufo_context.last_enemy->starting_time = g_gx_ufo_context.tick;                                                     \
      g_gx_ufo_context.last_enemy->life = 15 * (g_gx_ufo_context.stage_count * MMI_GX_UFO_ENEMY_LIFE_BASE + rand() % 2);      \
      g_gx_ufo_context.last_enemy->x = mmi_gx_ufo_get_enemy_position_x(g_gx_ufo_context.last_enemy->move_type);               \
      g_gx_ufo_context.last_enemy->y = 0;                                                                                     \
      g_gx_ufo_context.last_enemy->old_x = g_gx_ufo_context.last_enemy->x;                                                    \
      g_gx_ufo_context.last_enemy->old_y = g_gx_ufo_context.last_enemy->y;                                                    \
      g_gx_ufo_context.last_enemy->state = MMI_GX_UFO_NORMAL_STATE;                                                           \
   }                                                                                                                          \
}                                                                                                                             \

#define REMOVE_ENEMY_FROM_LIST(enemy)                                                \
{                                                                                    \
   /* if there is only one enemy in the list */                                      \
   if (enemy == g_gx_ufo_context.first_enemy && enemy == g_gx_ufo_context.last_enemy)\
   {                                                                                 \
      g_gx_ufo_context.last_empty_enemy_list->next = enemy;                          \
      enemy->previous = g_gx_ufo_context.last_empty_enemy_list;                      \
      g_gx_ufo_context.last_empty_enemy_list = enemy;                                \
      g_gx_ufo_context.last_empty_enemy_list->next = NULL;                           \
      g_gx_ufo_context.first_enemy = NULL;                                           \
      g_gx_ufo_context.last_enemy = NULL;                                            \
   }                                                                                 \
   /* there are more than one enemies in the list */                                 \
   else                                                                              \
   {                                                                                 \
      /* if it's the first enemy in the list */                                      \
      if (enemy == g_gx_ufo_context.first_enemy)                                     \
      {                                                                              \
         g_gx_ufo_context.last_empty_enemy_list->next = enemy;                       \
         enemy->previous = g_gx_ufo_context.last_empty_enemy_list;                   \
         g_gx_ufo_context.last_empty_enemy_list = enemy;                             \
         g_gx_ufo_context.first_enemy = enemy->next;                                 \
      }                                                                              \
      /* if it's the last enemy in the list */                                       \
      else if (enemy == g_gx_ufo_context.last_enemy)                                 \
      {                                                                              \
         g_gx_ufo_context.last_enemy = enemy->previous;                              \
         g_gx_ufo_context.last_empty_enemy_list->next = enemy;                       \
         enemy->previous = g_gx_ufo_context.last_empty_enemy_list;                   \
         g_gx_ufo_context.last_empty_enemy_list = enemy;                             \
         g_gx_ufo_context.last_enemy->next = NULL;                                   \
      }                                                                              \
      /* normal case */                                                              \
      else                                                                           \
      {                                                                              \
         enemy->previous->next = enemy->next;                                        \
         enemy->next->previous = enemy->previous;                                    \
         g_gx_ufo_context.last_empty_enemy_list->next = enemy;                       \
         enemy->previous = g_gx_ufo_context.last_empty_enemy_list;                   \
         g_gx_ufo_context.last_empty_enemy_list = enemy;                             \
      }                                                                              \
   }                                                                                 \
}                                                                                    \

#define REMOVE_ENEMY_BULLET_FROM_LIST(bullet)                                                        \
{                                                                                                    \
   /* if there is only one enemy bullet in the list */                                               \
   if (bullet == g_gx_ufo_context.first_enemy_bullet && bullet == g_gx_ufo_context.last_enemy_bullet)\
   {                                                                                                 \
      g_gx_ufo_context.last_empty_enemy_bullet_list->next = bullet;                                  \
      bullet->previous = g_gx_ufo_context.last_empty_enemy_bullet_list;                              \
      g_gx_ufo_context.last_empty_enemy_bullet_list = bullet;                                        \
      g_gx_ufo_context.last_empty_enemy_bullet_list->next = NULL;                                    \
      g_gx_ufo_context.first_enemy_bullet = NULL;                                                    \
      g_gx_ufo_context.last_enemy_bullet = NULL;                                                     \
   }                                                                                                 \
   /* there are more than one enemy bullets in the list */                                           \
   else                                                                                              \
   {                                                                                                 \
      /* if it's the first bullet in the list */                                                     \
      if (bullet == g_gx_ufo_context.first_enemy_bullet)                                             \
      {                                                                                              \
         g_gx_ufo_context.last_empty_enemy_bullet_list->next = bullet;                               \
         bullet->previous = g_gx_ufo_context.last_empty_enemy_bullet_list;                           \
         g_gx_ufo_context.last_empty_enemy_bullet_list = bullet;                                     \
         g_gx_ufo_context.first_enemy_bullet = bullet->next;                                         \
      }                                                                                              \
      /* if it's the last bullet in the list */                                                      \
      else if (bullet == g_gx_ufo_context.last_enemy_bullet)                                         \
      {                                                                                              \
         g_gx_ufo_context.last_enemy_bullet = bullet->previous;                                      \
         g_gx_ufo_context.last_empty_enemy_bullet_list->next = bullet;                               \
         bullet->previous = g_gx_ufo_context.last_empty_enemy_bullet_list;                           \
         g_gx_ufo_context.last_empty_enemy_bullet_list = bullet;                                     \
         g_gx_ufo_context.last_enemy_bullet->next = NULL;                                            \
      }                                                                                              \
      /* normal case */                                                                              \
      else                                                                                           \
      {                                                                                              \
         bullet->previous->next = bullet->next;                                                      \
         bullet->next->previous = bullet->previous;                                                  \
         g_gx_ufo_context.last_empty_enemy_bullet_list->next = bullet;                               \
         bullet->previous = g_gx_ufo_context.last_empty_enemy_bullet_list;                           \
         g_gx_ufo_context.last_empty_enemy_bullet_list = bullet;                                     \
      }                                                                                              \
   }                                                                                                 \
}                                                                                                    \

#define REMOVE_BULLET_FROM_LIST(i)                                             \
{                                                                              \
   /* if there is only one bullet in the list */                               \
   if (i == g_gx_ufo_context.first_bullet && i == g_gx_ufo_context.last_bullet)\
   {                                                                           \
      g_gx_ufo_context.last_empty_bullet_list->next = i;                       \
      i->previous = g_gx_ufo_context.last_empty_bullet_list;                   \
      g_gx_ufo_context.last_empty_bullet_list = i;                             \
      g_gx_ufo_context.last_empty_bullet_list->next = NULL;                    \
      g_gx_ufo_context.first_bullet = NULL;                                    \
      g_gx_ufo_context.last_bullet = NULL;                                     \
   }                                                                           \
   /* there are more than one bullets in the list */                           \
   else                                                                        \
   {                                                                           \
      /* if it's the first bullet in the list */                               \
      if (i == g_gx_ufo_context.first_bullet)                                  \
      {                                                                        \
         g_gx_ufo_context.last_empty_bullet_list->next = i;                    \
         i->previous = g_gx_ufo_context.last_empty_bullet_list;                \
         g_gx_ufo_context.last_empty_bullet_list = i;                          \
         g_gx_ufo_context.first_bullet = i->next;                              \
      }                                                                        \
      /* if it's the last bullet in the list */                                \
      else if (i == g_gx_ufo_context.last_bullet)                              \
      {                                                                        \
         g_gx_ufo_context.last_bullet = i->previous;                           \
         g_gx_ufo_context.last_empty_bullet_list->next = i;                    \
         i->previous = g_gx_ufo_context.last_empty_bullet_list;                \
         g_gx_ufo_context.last_empty_bullet_list = i;                          \
         g_gx_ufo_context.last_bullet->next = NULL;                            \
      }                                                                        \
      /* normal case */                                                        \
      else                                                                     \
      {                                                                        \
         i->previous->next = i->next;                                          \
         i->next->previous = i->previous;                                      \
         g_gx_ufo_context.last_empty_bullet_list->next = i;                    \
         i->previous = g_gx_ufo_context.last_empty_bullet_list;                \
         g_gx_ufo_context.last_empty_bullet_list = i;                          \
      }                                                                        \
   }                                                                           \
}                                                                              \

#define GET_TREASURE_TYPE(type)                                                                       \
{                                                                                                     \
   /* the probability distribution of treasures => energy: weapon: invincibility: bomb = 2: 2: 1: 1 */\
   tmp = rand() % 6;                                                                                  \
   if (tmp < 2)                                                                                       \
   {                                                                                                  \
      type = MMI_GX_UFO_ENERGY_TREASURE;                                                              \
   }                                                                                                  \
   else if (tmp > 4 && g_gx_ufo_context.tick < MMI_GX_UFO_STAGE_INTERVAL * 4)                         \
   {                                                                                                  \
      type = MMI_GX_UFO_BOMB_TREASURE;                                                                \
   }                                                                                                  \
   else if (tmp > 3 && tmp < 5)                                                                       \
   {                                                                                                  \
      type = MMI_GX_UFO_INVINCIBLE_TREASURE;                                                          \
   }                                                                                                  \
   else                                                                                               \
   {                                                                                                  \
      type = MMI_GX_UFO_WEAPON_TREASURE;                                                              \
   }                                                                                                  \
}                                                                                                     \

#define RESET_STATES()                                                       \
{                                                                            \
   g_gx_ufo_context.tick = 0;                                                \
   g_gx_ufo_context.stage_ending_time = 0;                                   \
   g_gx_ufo_context.energy = MMI_GX_UFO_ENERGY_UNIT_COUNT;                   \
   mmi_gx_ufo_draw_energy();                                                 \
                                                                             \
   g_gx_ufo_context.enemy_pattern_number = 0;                                \
   g_gx_ufo_context.enemy_model = &(g_gx_ufo_context.enemy_model_memory[0]); \
   mmi_gx_ufo_init_enemy_list();                                             \
   mmi_gx_ufo_init_enemy_bullet_list();                                      \
   g_gx_ufo_context.boss_appearing_time = MMI_GX_UFO_STAGE_INTERVAL * 4 + 70;\
}                                                                            \

/***************************************************************************** 
* Typedef 
*****************************************************************************/
#ifdef __MMI_GAME_MULTI_LANGUAGE_SUPPORT__
//added for multi-language support
typedef enum
{
    MMI_UFO_STRING_LEVEL_CLEAR,
    MMI_UFO_STRING_GAMEOVER,
    MMI_UFO_STRING_TOTAL
}mmi_ufo_string_enum;
#endif  /* __MMI_GAME_MULTI_LANGUAGE_SUPPORT__ */

typedef enum
{
    UFO_OFF = 0,
    UFO_SHOOT,
    UFO_HIT,
    UFO_EXPLODING,
    UFO_EAT
} audio_priority;

typedef struct t_ufo_node
{
    struct t_ufo_node *next;
    MMI_ID_TYPE image_id;
} gx_ufo_background_struct;

typedef struct t_ufo_bullet
{
    U8 x;
    S16 y;
    U8 old_x;
    S16 old_y;
    U8 type;
    struct t_ufo_bullet *previous;
    struct t_ufo_bullet *next;
} gx_ufo_bullet_struct;

typedef struct t_ufo_enemy
{
    S16 x;
    S16 y;
    S16 old_x;
    S16 old_y;
    U8 move_type;
    U8 attack_type;
    S16 vector_x;
    S16 vector_y;
    U16 starting_time;
    S16 life;
    U8 image_offset;
    U8 state;
    struct t_ufo_enemy *previous;
    struct t_ufo_enemy *next;
} gx_ufo_enemy_struct;

typedef struct t_ufo_e_bullet
{
    S16 x;
    S16 y;
    S16 old_x;
    S16 old_y;
    S16 vector_x;
    S16 vector_y;
    U8 image_offset;
    struct t_ufo_e_bullet *previous;
    struct t_ufo_e_bullet *next;
} gx_ufo_enemy_bullet_struct;

/* game context */
typedef struct
{
    BOOL is_gameover;
    BOOL is_new_game;
    U8 game_level;
    S16 game_grade;
    U16 timer_elapse;

    gdi_handle background;
    gdi_handle foreground;

    BOOL left_key_pressed;
    BOOL right_key_pressed;
    BOOL up_key_pressed;
    BOOL down_key_pressed;
    U16 tick;
    U8 energy;
    gx_ufo_background_struct background_image_list[MMI_GX_UFO_BACKGROUND_LIST_NUMBER];
    gx_ufo_background_struct *first_background_image;
    gx_ufo_background_struct *last_background_image;
    S16 first_background_position_y;

    S16 boss_appearing_time;
    S16 fighter_position_x;
    S16 fighter_position_y;
    S16 fighter_old_position_x;
    S16 fighter_old_position_y;
    U8 fighter_weapon;
    U8 fighter_invincible;
    U8 fighter_state;
    U16 fighter_dying_time;

    U8 treasure_old_position_x;
    S16 treasure_old_position_y;
    U8 treasure_position_x;
    S16 treasure_position_y;
    U8 treasure_type;
    BOOL is_treasure_on;
    BOOL is_boss_on;

    BOOL is_invisible;

    U16 stage_ending_time;
    U8 stage_count;

    U8 enemy_pattern_number;
    gx_ufo_enemy_struct *enemy_model;
    gx_ufo_enemy_struct enemy_model_memory[1];

    gx_ufo_bullet_struct bullet[MMI_GX_UFO_BULLET_COUNT];
    gx_ufo_bullet_struct *first_bullet;
    gx_ufo_bullet_struct *last_bullet;
    gx_ufo_bullet_struct *first_empty_bullet_list;
    gx_ufo_bullet_struct *last_empty_bullet_list;

    gx_ufo_enemy_struct enemy[MMI_GX_UFO_ENEMY_COUNT];
    gx_ufo_enemy_struct *first_enemy;
    gx_ufo_enemy_struct *last_enemy;
    gx_ufo_enemy_struct *first_empty_enemy_list;
    gx_ufo_enemy_struct *last_empty_enemy_list;

    gx_ufo_enemy_bullet_struct enemy_bullet[MMI_GX_UFO_ENEMY_BULLET_COUNT];
    gx_ufo_enemy_bullet_struct *first_enemy_bullet;
    gx_ufo_enemy_bullet_struct *last_enemy_bullet;
    gx_ufo_enemy_bullet_struct *first_empty_enemy_bullet_list;
    gx_ufo_enemy_bullet_struct *last_empty_enemy_bullet_list;

#if defined (__MMI_GAME_MULTICHANNEL_SOUND__)
    S32 background_midi;    /* 12 */
    S32 eat_midi;           /* 13 */
    S32 hit_midi;           /* 14 */
    S32 explode_wav;        /* 15 */
    S32 shoot_wav;          /* 16 */
    S32 is_sound_close;
#endif /* defined (__MMI_GAME_MULTICHANNEL_SOUND__) */ 

    audio_priority audio_to_play;

} gx_ufo_context_struct;

/***************************************************************************** 
* Local Variable
*****************************************************************************/
gx_ufo_context_struct g_gx_ufo_context = 
{
    FALSE,  /* is_gameover */
    TRUE,   /* is_new_game */
    0,      /* game_level */
    0,      /* game_grade */
    100     /* timer_elapse */
};

#ifdef  __MMI_GAME_MULTI_LANGUAGE_SUPPORT__ /*added for game multi-language*/
static U16 mmi_ufo_language_index;
#define MMI_UFO_STRING_COUNT MMI_UFO_STRING_TOTAL
#endif  /* __MMI_GAME_MULTI_LANGUAGE_SUPPORT__ */

/***************************************************************************** 
* Local Function
*****************************************************************************/
/* Game framework related functions */
S16 mmi_gx_ufo_calc_best_grade(S16 old_grade, S16 new_grade);   /* descide which is best grade */
void mmi_gx_ufo_enter_game(void);       /* entry function of the game */
void mmi_gx_ufo_exit_game(void);        /* exit function - usually will stop timer and release buffer */
void mmi_gx_ufo_draw_gameover(void);    /* draw gameover screen */

/* Game play functions */
void mmi_gx_ufo_framemove(void);
void mmi_gx_ufo_render(void);
void mmi_gx_ufo_gameover(void);
void mmi_gx_ufo_cyclic_timer(void);
void mmi_gx_ufo_init_game(void);    /* draw gameover screen */
void mmi_gx_ufo_key_2_press(void);
void mmi_gx_ufo_key_2_release(void);
void mmi_gx_ufo_key_4_press(void);
void mmi_gx_ufo_key_4_release(void);
void mmi_gx_ufo_key_6_press(void);
void mmi_gx_ufo_key_6_release(void);
void mmi_gx_ufo_key_8_press(void);
void mmi_gx_ufo_key_8_release(void);
void mmi_gx_ufo_draw_static_background(void);
void mmi_gx_ufo_draw_score(void);
void mmi_gx_ufo_draw_energy(void);
void mmi_gx_ufo_init_background_list(void);
void mmi_gx_ufo_draw_background(void);
void mmi_gx_ufo_init_bullet_list(void);
void mmi_gx_ufo_init_enemy_list(void);
void mmi_gx_ufo_init_enemy_bullet_list(void);
U8 mmi_gx_ufo_get_bullet_position_x(U8 type);
S16 mmi_gx_ufo_get_bullet_position_y(void);
U8 mmi_gx_ufo_get_enemy_position_x(U8 type);
void mmi_gx_ufo_update_enemy_vector(gx_ufo_enemy_struct *enemy);

/************************************************************************/
/* Audio [Const]                                                        */
/************************************************************************/

#ifdef __MMI_GAME_MULTICHANNEL_SOUND__

#define UFOEXPLODE_MIDI 122

__align(2)
     const U8 UFOExplode_Midi[] = 
     {
         0x4D, 0x54, 0x68, 0x64, 0x00, 0x00, 0x00, 0x06,
         0x00, 0x00, 0x00, 0x01, 0x03, 0xC0, 0x4D, 0x54,
         0x72, 0x6B, 0x00, 0x00, 0x00, 0x64, 0x00, 0xFF,
         0x02, 0x16, 0x43, 0x6F, 0x70, 0x79, 0x72, 0x69,
         0x67, 0x68, 0x74, 0x20, 0x63, 0x20, 0x32, 0x30,
         0x30, 0x33, 0x20, 0x62, 0x79, 0x20, 0x43, 0x43,
         0x00, 0xFF, 0x01, 0x02, 0x43, 0x43, 0x00, 0xFF,
         0x58, 0x04, 0x04, 0x02, 0x18, 0x08, 0x00, 0xFF,
         0x59, 0x02, 0x00, 0x00, 0x00, 0xFF, 0x51, 0x03,
         0x03, 0xA9, 0x80, 0x00, 0xC0, 0x77, 0x00, 0xB0,
         0x07, 0x74, 0x00, 0x90, 0x3C, 0x7E, 0x00, 0xC1,
         0x78, 0x00, 0xB1, 0x07, 0x62, 0x00, 0x91, 0x3E,
         0x6F, 0x00, 0x3C, 0x7D, 0x00, 0x3B, 0x6F, 0x87,
         0x40, 0x3B, 0x00, 0x00, 0x90, 0x3C, 0x00, 0x00,
         0x91, 0x3E, 0x00, 0x00, 0x3C, 0x00, 0x00, 0xFF,
         0x2F, 0x00,
     };

#define BACKGROUND_UFO_MIDI 3654

__align(2)
     const U8 BackGround_UFO_Midi[] = 
     {
         0x4D, 0x54, 0x68, 0x64, 0x00, 0x00, 0x00, 0x06,
         0x00, 0x00, 0x00, 0x01, 0x03, 0xC0, 0x4D, 0x54,
         0x72, 0x6B, 0x00, 0x00, 0x0E, 0x30, 0x00, 0xFF,
         0x02, 0x16, 0x43, 0x6F, 0x70, 0x79, 0x72, 0x69,
         0x67, 0x68, 0x74, 0x20, 0x63, 0x20, 0x32, 0x30,
         0x30, 0x34, 0x20, 0x62, 0x79, 0x20, 0x43, 0x43,
         0x00, 0xFF, 0x01, 0x02, 0x43, 0x43, 0x00, 0xFF,
         0x58, 0x04, 0x04, 0x02, 0x18, 0x08, 0x00, 0xFF,
         0x59, 0x02, 0x00, 0x00, 0x00, 0xFF, 0x51, 0x03,
         0x05, 0x16, 0x15, 0x00, 0xC0, 0x58, 0x00, 0x90,
         0x58, 0x6F, 0x00, 0xC1, 0x0A, 0x00, 0x91, 0x4C,
         0x6F, 0x00, 0xC2, 0x5E, 0x00, 0xB2, 0x07, 0x52,
         0x00, 0x92, 0x3C, 0x64, 0x00, 0xC3, 0x5B, 0x00,
         0x93, 0x3C, 0x64, 0x87, 0x40, 0x3C, 0x00, 0x00,
         0x90, 0x58, 0x00, 0x00, 0x91, 0x4C, 0x00, 0x00,
         0x90, 0x58, 0x6F, 0x00, 0x91, 0x4C, 0x6F, 0x00,
         0x93, 0x43, 0x64, 0x83, 0x60, 0x43, 0x00, 0x00,
         0x4C, 0x64, 0x83, 0x60, 0x91, 0x4C, 0x00, 0x00,
         0x90, 0x58, 0x00, 0x00, 0x59, 0x7C, 0x00, 0x91,
         0x4D, 0x7C, 0x87, 0x40, 0x4D, 0x00, 0x00, 0x90,
         0x59, 0x00, 0x00, 0x5B, 0x5A, 0x00, 0x91, 0x4F,
         0x5A, 0x87, 0x40, 0x4F, 0x00, 0x00, 0x93, 0x4C,
         0x00, 0x00, 0x92, 0x3C, 0x00, 0x00, 0x90, 0x5B,
         0x00, 0x00, 0x5B, 0x6F, 0x00, 0x91, 0x4F, 0x6F,
         0x00, 0x92, 0x37, 0x64, 0x00, 0x93, 0x40, 0x64,
         0x87, 0x40, 0x40, 0x00, 0x00, 0x90, 0x5B, 0x00,
         0x00, 0x91, 0x4F, 0x00, 0x00, 0x90, 0x59, 0x6F,
         0x00, 0x91, 0x4D, 0x6F, 0x00, 0x93, 0x47, 0x64,
         0x83, 0x60, 0x47, 0x00, 0x00, 0x4F, 0x64, 0x83,
         0x60, 0x91, 0x4D, 0x00, 0x00, 0x90, 0x59, 0x00,
         0x00, 0x58, 0x7C, 0x00, 0x91, 0x4C, 0x7C, 0x87,
         0x40, 0x4C, 0x00, 0x00, 0x90, 0x58, 0x00, 0x00,
         0x56, 0x52, 0x00, 0x91, 0x4A, 0x52, 0x87, 0x40,
         0x4A, 0x00, 0x00, 0x93, 0x4F, 0x00, 0x00, 0x92,
         0x37, 0x00, 0x00, 0x90, 0x56, 0x00, 0x00, 0x54,
         0x6F, 0x00, 0x91, 0x48, 0x6F, 0x00, 0x92, 0x35,
         0x64, 0x00, 0x93, 0x41, 0x64, 0x87, 0x40, 0x41,
         0x00, 0x00, 0x90, 0x54, 0x00, 0x00, 0x91, 0x48,
         0x00, 0x00, 0x92, 0x35, 0x00, 0x00, 0x90, 0x54,
         0x6F, 0x00, 0x91, 0x48, 0x6F, 0x00, 0x92, 0x3C,
         0x64, 0x00, 0x93, 0x48, 0x64, 0x83, 0x60, 0x48,
         0x00, 0x00, 0x51, 0x64, 0x83, 0x60, 0x90, 0x54,
         0x00, 0x00, 0x92, 0x3C, 0x00, 0x00, 0x91, 0x48,
         0x00, 0x00, 0x90, 0x56, 0x6F, 0x00, 0x91, 0x4A,
         0x6F, 0x00, 0x92, 0x39, 0x64, 0x83, 0x60, 0x39,
         0x00, 0x00, 0x37, 0x64, 0x83, 0x60, 0x37, 0x00,
         0x00, 0x91, 0x4A, 0x00, 0x00, 0x90, 0x56, 0x00,
         0x00, 0x58, 0x7C, 0x00, 0x91, 0x4C, 0x7C, 0x00,
         0x92, 0x35, 0x64, 0x87, 0x40, 0x35, 0x00, 0x00,
         0x93, 0x51, 0x00, 0x00, 0x90, 0x58, 0x00, 0x00,
         0x91, 0x4C, 0x00, 0x00, 0x90, 0x58, 0x7C, 0x00,
         0x91, 0x4C, 0x7C, 0x00, 0x92, 0x37, 0x64, 0x00,
         0x93, 0x43, 0x64, 0x87, 0x40, 0x43, 0x00, 0x00,
         0x47, 0x64, 0x83, 0x60, 0x47, 0x00, 0x00, 0x91,
         0x4C, 0x00, 0x00, 0x90, 0x58, 0x00, 0x00, 0x56,
         0x7C, 0x00, 0x91, 0x4A, 0x7C, 0x00, 0x93, 0x4F,
         0x64, 0x83, 0x60, 0x91, 0x4A, 0x00, 0x00, 0x92,
         0x37, 0x00, 0x00, 0x90, 0x56, 0x00, 0x00, 0x56,
         0x7C, 0x00, 0x91, 0x4A, 0x7C, 0x00, 0x92, 0x43,
         0x64, 0x83, 0x60, 0x43, 0x00, 0x00, 0x41, 0x64,
         0x82, 0x40, 0x93, 0x4F, 0x00, 0x81, 0x20, 0x92,
         0x41, 0x00, 0x00, 0x40, 0x64, 0x00, 0x93, 0x4F,
         0x64, 0x83, 0x60, 0x4F, 0x00, 0x00, 0x92, 0x40,
         0x00, 0x00, 0x3E, 0x64, 0x00, 0x93, 0x43, 0x64,
         0x83, 0x60, 0x43, 0x00, 0x00, 0x90, 0x56, 0x00,
         0x00, 0x91, 0x4A, 0x00, 0x00, 0x92, 0x3E, 0x00,
         0x00, 0x90, 0x58, 0x7C, 0x00, 0x91, 0x4C, 0x7C,
         0x00, 0x92, 0x3C, 0x64, 0x00, 0x93, 0x3C, 0x64,
         0x87, 0x40, 0x3C, 0x00, 0x00, 0x90, 0x58, 0x00,
         0x00, 0x91, 0x4C, 0x00, 0x00, 0x90, 0x58, 0x7C,
         0x00, 0x91, 0x4C, 0x7C, 0x00, 0x93, 0x43, 0x64,
         0x83, 0x60, 0x43, 0x00, 0x00, 0x4C, 0x64, 0x83,
         0x60, 0x91, 0x4C, 0x00, 0x00, 0x90, 0x58, 0x00,
         0x00, 0x59, 0x7C, 0x00, 0x91, 0x4D, 0x7C, 0x87,
         0x40, 0x4D, 0x00, 0x00, 0x90, 0x59, 0x00, 0x00,
         0x5B, 0x67, 0x00, 0x91, 0x4F, 0x67, 0x87, 0x40,
         0x4F, 0x00, 0x00, 0x93, 0x4C, 0x00, 0x00, 0x92,
         0x3C, 0x00, 0x00, 0x90, 0x5B, 0x00, 0x00, 0x5B,
         0x7C, 0x00, 0x91, 0x4F, 0x7C, 0x00, 0x92, 0x37,
         0x64, 0x00, 0x93, 0x40, 0x64, 0x87, 0x40, 0x40,
         0x00, 0x00, 0x90, 0x5B, 0x00, 0x00, 0x91, 0x4F,
         0x00, 0x00, 0x90, 0x59, 0x7C, 0x00, 0x91, 0x4D,
         0x7C, 0x00, 0x93, 0x47, 0x64, 0x83, 0x60, 0x47,
         0x00, 0x00, 0x4F, 0x64, 0x83, 0x60, 0x91, 0x4D,
         0x00, 0x00, 0x90, 0x59, 0x00, 0x00, 0x58, 0x67,
         0x00, 0x91, 0x4C, 0x67, 0x87, 0x40, 0x4C, 0x00,
         0x00, 0x90, 0x58, 0x00, 0x00, 0x56, 0x7D, 0x00,
         0x91, 0x4A, 0x7D, 0x87, 0x40, 0x4A, 0x00, 0x00,
         0x93, 0x4F, 0x00, 0x00, 0x92, 0x37, 0x00, 0x00,
         0x90, 0x56, 0x00, 0x00, 0x54, 0x51, 0x00, 0x91,
         0x48, 0x51, 0x00, 0x92, 0x34, 0x64, 0x00, 0x93,
         0x41, 0x64, 0x87, 0x40, 0x41, 0x00, 0x00, 0x90,
         0x54, 0x00, 0x00, 0x91, 0x48, 0x00, 0x00, 0x90,
         0x54, 0x7C, 0x00, 0x91, 0x48, 0x7C, 0x00, 0x93,
         0x48, 0x64, 0x83, 0x60, 0x48, 0x00, 0x00, 0x51,
         0x64, 0x83, 0x60, 0x51, 0x00, 0x00, 0x91, 0x48,
         0x00, 0x00, 0x90, 0x54, 0x00, 0x00, 0x92, 0x34,
         0x00, 0x00, 0x90, 0x56, 0x7C, 0x00, 0x91, 0x4A,
         0x7C, 0x00, 0x92, 0x35, 0x64, 0x00, 0x93, 0x43,
         0x64, 0x87, 0x40, 0x43, 0x00, 0x00, 0x90, 0x56,
         0x00, 0x00, 0x91, 0x4A, 0x00, 0x00, 0x92, 0x35,
         0x00, 0x00, 0x90, 0x58, 0x7C, 0x00, 0x91, 0x4C,
         0x7C, 0x00, 0x92, 0x37, 0x64, 0x00, 0x93, 0x47,
         0x64, 0x83, 0x60, 0x47, 0x00, 0x00, 0x4F, 0x64,
         0x83, 0x60, 0x4F, 0x00, 0x00, 0x92, 0x37, 0x00,
         0x00, 0x91, 0x4C, 0x00, 0x00, 0x90, 0x58, 0x00,
         0x00, 0x56, 0x7C, 0x00, 0x91, 0x4A, 0x7C, 0x00,
         0x92, 0x30, 0x64, 0x00, 0x93, 0x3C, 0x64, 0x83,
         0x60, 0x3C, 0x00, 0x00, 0x43, 0x64, 0x83, 0x60,
         0x43, 0x00, 0x00, 0x48, 0x64, 0x83, 0x60, 0x48,
         0x00, 0x00, 0x90, 0x56, 0x00, 0x00, 0x91, 0x4A,
         0x00, 0x00, 0x90, 0x54, 0x53, 0x00, 0x91, 0x48,
         0x53, 0x00, 0x93, 0x4A, 0x64, 0x83, 0x60, 0x4A,
         0x00, 0x00, 0x91, 0x48, 0x00, 0x00, 0x90, 0x54,
         0x00, 0x00, 0x54, 0x7C, 0x00, 0x91, 0x48, 0x7C,
         0x00, 0x93, 0x4C, 0x64, 0x8F, 0x00, 0x4C, 0x00,
         0x00, 0x92, 0x30, 0x00, 0x00, 0x90, 0x54, 0x00,
         0x00, 0x91, 0x48, 0x00, 0x00, 0x90, 0x56, 0x7D,
         0x00, 0x91, 0x4A, 0x7D, 0x00, 0x92, 0x37, 0x64,
         0x00, 0x93, 0x43, 0x64, 0x83, 0x60, 0x43, 0x00,
         0x00, 0x47, 0x64, 0x83, 0x60, 0x47, 0x00, 0x00,
         0x4F, 0x64, 0x87, 0x40, 0x4F, 0x00, 0x00, 0x90,
         0x56, 0x00, 0x00, 0x91, 0x4A, 0x00, 0x00, 0x90,
         0x58, 0x7C, 0x00, 0x91, 0x4C, 0x7C, 0x00, 0x93,
         0x3C, 0x64, 0x83, 0x60, 0x3C, 0x00, 0x00, 0x43,
         0x64, 0x83, 0x60, 0x43, 0x00, 0x00, 0x91, 0x4C,
         0x00, 0x00, 0x90, 0x58, 0x00, 0x00, 0x54, 0x67,
         0x00, 0x91, 0x48, 0x67, 0x00, 0x93, 0x4C, 0x64,
         0x87, 0x40, 0x4C, 0x00, 0x00, 0x92, 0x37, 0x00,
         0x00, 0x90, 0x54, 0x00, 0x00, 0x91, 0x48, 0x00,
         0x00, 0x90, 0x56, 0x6F, 0x00, 0x91, 0x4A, 0x6F,
         0x00, 0x92, 0x37, 0x64, 0x00, 0x93, 0x43, 0x64,
         0x83, 0x60, 0x43, 0x00, 0x00, 0x47, 0x64, 0x83,
         0x60, 0x90, 0x56, 0x00, 0x00, 0x91, 0x4A, 0x00,
         0x00, 0x90, 0x58, 0x67, 0x00, 0x91, 0x4C, 0x67,
         0x83, 0x60, 0x4C, 0x00, 0x00, 0x90, 0x58, 0x00,
         0x00, 0x93, 0x47, 0x00, 0x00, 0x90, 0x59, 0x53,
         0x00, 0x91, 0x4D, 0x53, 0x00, 0x93, 0x4F, 0x64,
         0x83, 0x60, 0x4F, 0x00, 0x00, 0x91, 0x4D, 0x00,
         0x00, 0x90, 0x59, 0x00, 0x00, 0x58, 0x6F, 0x00,
         0x91, 0x4C, 0x6F, 0x00, 0x93, 0x3C, 0x64, 0x83,
         0x60, 0x3C, 0x00, 0x00, 0x43, 0x64, 0x83, 0x60,
         0x91, 0x4C, 0x00, 0x00, 0x90, 0x58, 0x00, 0x00,
         0x54, 0x5A, 0x00, 0x91, 0x48, 0x5A, 0x83, 0x60,
         0x93, 0x43, 0x00, 0x00, 0x4C, 0x64, 0x83, 0x60,
         0x4C, 0x00, 0x00, 0x91, 0x48, 0x00, 0x00, 0x90,
         0x54, 0x00, 0x00, 0x92, 0x37, 0x00, 0x00, 0x90,
         0x56, 0x6F, 0x00, 0x91, 0x4A, 0x6F, 0x00, 0x92,
         0x37, 0x64, 0x00, 0x93, 0x43, 0x64, 0x83, 0x60,
         0x43, 0x00, 0x00, 0x47, 0x64, 0x83, 0x60, 0x47,
         0x00, 0x00, 0x91, 0x4A, 0x00, 0x00, 0x90, 0x56,
         0x00, 0x00, 0x58, 0x67, 0x00, 0x91, 0x4C, 0x67,
         0x00, 0x93, 0x4F, 0x64, 0x83, 0x60, 0x4F, 0x00,
         0x00, 0x91, 0x4C, 0x00, 0x00, 0x90, 0x58, 0x00,
         0x00, 0x59, 0x51, 0x00, 0x91, 0x4D, 0x51, 0x00,
         0x93, 0x44, 0x64, 0x83, 0x60, 0x44, 0x00, 0x00,
         0x92, 0x37, 0x00, 0x00, 0x90, 0x59, 0x00, 0x00,
         0x91, 0x4D, 0x00, 0x00, 0x90, 0x58, 0x7C, 0x00,
         0x91, 0x4C, 0x7C, 0x00, 0x92, 0x38, 0x64, 0x00,
         0x93, 0x45, 0x64, 0x83, 0x60, 0x45, 0x00, 0x00,
         0x48, 0x64, 0x83, 0x60, 0x48, 0x00, 0x00, 0x91,
         0x4C, 0x00, 0x00, 0x90, 0x58, 0x00, 0x00, 0x56,
         0x6F, 0x00, 0x91, 0x4A, 0x6F, 0x00, 0x93, 0x4C,
         0x64, 0x83, 0x60, 0x4C, 0x00, 0x00, 0x51, 0x64,
         0x83, 0x60, 0x51, 0x00, 0x00, 0x91, 0x4A, 0x00,
         0x00, 0x90, 0x56, 0x00, 0x00, 0x92, 0x38, 0x00,
         0x00, 0x90, 0x54, 0x7C, 0x00, 0x91, 0x48, 0x7C,
         0x00, 0x92, 0x39, 0x64, 0x00, 0x93, 0x3E, 0x64,
         0x83, 0x60, 0x3E, 0x00, 0x00, 0x45, 0x64, 0x83,
         0x60, 0x45, 0x00, 0x00, 0x92, 0x39, 0x00, 0x00,
         0x91, 0x48, 0x00, 0x00, 0x90, 0x54, 0x00, 0x00,
         0x56, 0x6F, 0x00, 0x91, 0x4A, 0x6F, 0x00, 0x92,
         0x32, 0x64, 0x00, 0x93, 0x48, 0x64, 0x83, 0x60,
         0x48, 0x00, 0x00, 0x4E, 0x64, 0x83, 0x60, 0x4E,
         0x00, 0x00, 0x92, 0x32, 0x00, 0x00, 0x91, 0x4A,
         0x00, 0x00, 0x90, 0x56, 0x00, 0x00, 0x4F, 0x7C,
         0x00, 0x91, 0x43, 0x7C, 0x00, 0x92, 0x37, 0x64,
         0x00, 0x93, 0x4F, 0x64, 0x83, 0x60, 0x4F, 0x00,
         0x00, 0x47, 0x64, 0x83, 0x60, 0x47, 0x00, 0x00,
         0x91, 0x43, 0x00, 0x00, 0x90, 0x4F, 0x00, 0x00,
         0x58, 0x7F, 0x00, 0x91, 0x4C, 0x7F, 0x00, 0x93,
         0x45, 0x64, 0x83, 0x60, 0x45, 0x00, 0x00, 0x43,
         0x64, 0x83, 0x60, 0x43, 0x00, 0x00, 0x92, 0x37,
         0x00, 0x00, 0x3C, 0x64, 0x00, 0x93, 0x3C, 0x64,
         0x87, 0x40, 0x3C, 0x00, 0x00, 0x90, 0x58, 0x00,
         0x00, 0x91, 0x4C, 0x00, 0x00, 0x90, 0x58, 0x7C,
         0x00, 0x91, 0x4C, 0x7C, 0x00, 0x93, 0x43, 0x64,
         0x83, 0x60, 0x43, 0x00, 0x00, 0x4C, 0x64, 0x83,
         0x60, 0x92, 0x3C, 0x00, 0x00, 0x91, 0x4C, 0x00,
         0x00, 0x90, 0x58, 0x00, 0x00, 0x59, 0x52, 0x00,
         0x91, 0x4D, 0x52, 0x00, 0x92, 0x3B, 0x64, 0x87,
         0x40, 0x91, 0x4D, 0x00, 0x00, 0x90, 0x59, 0x00,
         0x00, 0x5B, 0x6F, 0x00, 0x91, 0x4F, 0x6F, 0x87,
         0x40, 0x4F, 0x00, 0x00, 0x92, 0x3B, 0x00, 0x00,
         0x93, 0x4C, 0x00, 0x00, 0x90, 0x5B, 0x00, 0x00,
         0x5B, 0x6F, 0x00, 0x91, 0x4F, 0x6F, 0x00, 0x92,
         0x3A, 0x64, 0x00, 0x93, 0x40, 0x64, 0x87, 0x40,
         0x40, 0x00, 0x00, 0x90, 0x5B, 0x00, 0x00, 0x91,
         0x4F, 0x00, 0x00, 0x90, 0x59, 0x6F, 0x00, 0x91,
         0x4D, 0x6F, 0x00, 0x93, 0x47, 0x64, 0x83, 0x60,
         0x47, 0x00, 0x00, 0x4F, 0x64, 0x83, 0x60, 0x92,
         0x3A, 0x00, 0x00, 0x91, 0x4D, 0x00, 0x00, 0x90,
         0x59, 0x00, 0x00, 0x58, 0x6F, 0x00, 0x91, 0x4C,
         0x6F, 0x00, 0x92, 0x39, 0x64, 0x87, 0x40, 0x91,
         0x4C, 0x00, 0x00, 0x90, 0x58, 0x00, 0x00, 0x56,
         0x6F, 0x00, 0x91, 0x4A, 0x6F, 0x87, 0x40, 0x4A,
         0x00, 0x00, 0x92, 0x39, 0x00, 0x00, 0x93, 0x4F,
         0x00, 0x00, 0x90, 0x56, 0x00, 0x00, 0x54, 0x67,
         0x00, 0x91, 0x48, 0x67, 0x00, 0x92, 0x38, 0x64,
         0x00, 0x93, 0x41, 0x64, 0x83, 0x60, 0x41, 0x00,
         0x00, 0x48, 0x64, 0x83, 0x60, 0x90, 0x54, 0x00,
         0x00, 0x91, 0x48, 0x00, 0x00, 0x90, 0x54, 0x7C,
         0x00, 0x91, 0x48, 0x7C, 0x83, 0x60, 0x93, 0x48,
         0x00, 0x00, 0x51, 0x64, 0x83, 0x60, 0x51, 0x00,
         0x00, 0x91, 0x48, 0x00, 0x00, 0x90, 0x54, 0x00,
         0x00, 0x92, 0x38, 0x00, 0x00, 0x90, 0x56, 0x7C,
         0x00, 0x91, 0x4A, 0x7C, 0x00, 0x92, 0x37, 0x64,
         0x00, 0x93, 0x43, 0x64, 0x83, 0x60, 0x43, 0x00,
         0x00, 0x47, 0x64, 0x83, 0x60, 0x90, 0x56, 0x00,
         0x00, 0x91, 0x4A, 0x00, 0x00, 0x90, 0x58, 0x7C,
         0x00, 0x91, 0x4C, 0x7C, 0x83, 0x60, 0x93, 0x47,
         0x00, 0x00, 0x4F, 0x64, 0x83, 0x60, 0x4F, 0x00,
         0x00, 0x91, 0x4C, 0x00, 0x00, 0x90, 0x58, 0x00,
         0x00, 0x92, 0x37, 0x00, 0x00, 0x90, 0x56, 0x7D,
         0x00, 0x91, 0x4A, 0x7D, 0x00, 0x92, 0x35, 0x64,
         0x00, 0x93, 0x3C, 0x64, 0x87, 0x40, 0x3C, 0x00,
         0x00, 0x92, 0x35, 0x00, 0x00, 0x37, 0x64, 0x00,
         0x93, 0x43, 0x64, 0x83, 0x60, 0x91, 0x4A, 0x00,
         0x00, 0x90, 0x56, 0x00, 0x00, 0x54, 0x53, 0x00,
         0x91, 0x48, 0x53, 0x83, 0x60, 0x48, 0x00, 0x00,
         0x90, 0x54, 0x00, 0x00, 0x92, 0x37, 0x00, 0x00,
         0x90, 0x54, 0x67, 0x00, 0x91, 0x48, 0x67, 0x00,
         0x92, 0x30, 0x64, 0x87, 0x40, 0x93, 0x43, 0x00,
         0x00, 0x4C, 0x64, 0x87, 0x40, 0x4C, 0x00, 0x00,
         0x92, 0x30, 0x00, 0x00, 0x91, 0x48, 0x00, 0x00,
         0x90, 0x54, 0x00, 0x00, 0x58, 0x7C, 0x00, 0x91,
         0x4C, 0x7C, 0x00, 0x92, 0x3C, 0x64, 0x00, 0x93,
         0x3C, 0x64, 0x87, 0x40, 0x3C, 0x00, 0x00, 0x90,
         0x58, 0x00, 0x00, 0x91, 0x4C, 0x00, 0x00, 0x90,
         0x58, 0x6F, 0x00, 0x91, 0x4C, 0x6F, 0x00, 0x93,
         0x43, 0x64, 0x83, 0x60, 0x43, 0x00, 0x00, 0x4C,
         0x64, 0x83, 0x60, 0x91, 0x4C, 0x00, 0x00, 0x90,
         0x58, 0x00, 0x00, 0x59, 0x5A, 0x00, 0x91, 0x4D,
         0x5A, 0x87, 0x40, 0x4D, 0x00, 0x00, 0x90, 0x59,
         0x00, 0x00, 0x5B, 0x7C, 0x00, 0x91, 0x4F, 0x7C,
         0x87, 0x40, 0x4F, 0x00, 0x00, 0x93, 0x4C, 0x00,
         0x00, 0x92, 0x3C, 0x00, 0x00, 0x90, 0x5B, 0x00,
         0x00, 0x5B, 0x67, 0x00, 0x91, 0x4F, 0x67, 0x00,
         0x92, 0x37, 0x64, 0x00, 0x93, 0x40, 0x64, 0x87,
         0x40, 0x40, 0x00, 0x00, 0x90, 0x5B, 0x00, 0x00,
         0x91, 0x4F, 0x00, 0x00, 0x90, 0x59, 0x6F, 0x00,
         0x91, 0x4D, 0x6F, 0x00, 0x93, 0x47, 0x64, 0x83,
         0x60, 0x47, 0x00, 0x00, 0x4F, 0x64, 0x83, 0x60,
         0x91, 0x4D, 0x00, 0x00, 0x90, 0x59, 0x00, 0x00,
         0x58, 0x7C, 0x00, 0x91, 0x4C, 0x7C, 0x87, 0x40,
         0x4C, 0x00, 0x00, 0x90, 0x58, 0x00, 0x00, 0x56,
         0x6F, 0x00, 0x91, 0x4A, 0x6F, 0x87, 0x40, 0x4A,
         0x00, 0x00, 0x93, 0x4F, 0x00, 0x00, 0x92, 0x37,
         0x00, 0x00, 0x90, 0x56, 0x00, 0x00, 0x54, 0x6F,
         0x00, 0x91, 0x48, 0x6F, 0x00, 0x92, 0x3C, 0x64,
         0x00, 0x93, 0x41, 0x64, 0x87, 0x40, 0x41, 0x00,
         0x00, 0x90, 0x54, 0x00, 0x00, 0x91, 0x48, 0x00,
         0x00, 0x90, 0x54, 0x5A, 0x00, 0x91, 0x48, 0x5A,
         0x00, 0x93, 0x48, 0x64, 0x83, 0x60, 0x48, 0x00,
         0x00, 0x51, 0x64, 0x83, 0x60, 0x92, 0x3C, 0x00,
         0x00, 0x91, 0x48, 0x00, 0x00, 0x90, 0x54, 0x00,
         0x00, 0x56, 0x7C, 0x00, 0x91, 0x4A, 0x7C, 0x00,
         0x92, 0x34, 0x64, 0x87, 0x40, 0x91, 0x4A, 0x00,
         0x00, 0x90, 0x56, 0x00, 0x00, 0x58, 0x6F, 0x00,
         0x91, 0x4C, 0x6F, 0x87, 0x40, 0x4C, 0x00, 0x00,
         0x92, 0x34, 0x00, 0x00, 0x93, 0x51, 0x00, 0x00,
         0x90, 0x58, 0x00, 0x00, 0x58, 0x6F, 0x00, 0x91,
         0x4C, 0x6F, 0x00, 0x92, 0x37, 0x64, 0x00, 0x93,
         0x43, 0x64, 0x87, 0x40, 0x43, 0x00, 0x00, 0x47,
         0x64, 0x83, 0x60, 0x47, 0x00, 0x00, 0x91, 0x4C,
         0x00, 0x00, 0x90, 0x58, 0x00, 0x00, 0x56, 0x53,
         0x00, 0x91, 0x4A, 0x53, 0x00, 0x93, 0x4F, 0x64,
         0x83, 0x60, 0x91, 0x4A, 0x00, 0x00, 0x92, 0x37,
         0x00, 0x00, 0x90, 0x56, 0x00, 0x00, 0x56, 0x5A,
         0x00, 0x91, 0x4A, 0x5A, 0x00, 0x92, 0x43, 0x64,
         0x83, 0x60, 0x43, 0x00, 0x00, 0x41, 0x64, 0x82,
         0x40, 0x93, 0x4F, 0x00, 0x81, 0x20, 0x92, 0x41,
         0x00, 0x00, 0x40, 0x64, 0x00, 0x93, 0x4F, 0x64,
         0x83, 0x60, 0x4F, 0x00, 0x00, 0x92, 0x40, 0x00,
         0x00, 0x3E, 0x64, 0x00, 0x93, 0x43, 0x64, 0x83,
         0x60, 0x43, 0x00, 0x00, 0x90, 0x56, 0x00, 0x00,
         0x91, 0x4A, 0x00, 0x00, 0x92, 0x3E, 0x00, 0x00,
         0x90, 0x58, 0x7D, 0x00, 0x91, 0x4C, 0x7D, 0x00,
         0x92, 0x3C, 0x64, 0x00, 0x93, 0x3C, 0x64, 0x87,
         0x40, 0x3C, 0x00, 0x00, 0x90, 0x58, 0x00, 0x00,
         0x91, 0x4C, 0x00, 0x00, 0x90, 0x58, 0x67, 0x00,
         0x91, 0x4C, 0x67, 0x00, 0x93, 0x43, 0x64, 0x83,
         0x60, 0x43, 0x00, 0x00, 0x4C, 0x64, 0x83, 0x60,
         0x91, 0x4C, 0x00, 0x00, 0x90, 0x58, 0x00, 0x00,
         0x59, 0x7C, 0x00, 0x91, 0x4D, 0x7C, 0x87, 0x40,
         0x4D, 0x00, 0x00, 0x90, 0x59, 0x00, 0x00, 0x5B,
         0x5A, 0x00, 0x91, 0x4F, 0x5A, 0x87, 0x40, 0x4F,
         0x00, 0x00, 0x93, 0x4C, 0x00, 0x00, 0x92, 0x3C,
         0x00, 0x00, 0x90, 0x5B, 0x00, 0x00, 0x5B, 0x6F,
         0x00, 0x91, 0x4F, 0x6F, 0x00, 0x92, 0x37, 0x64,
         0x00, 0x93, 0x40, 0x64, 0x87, 0x40, 0x40, 0x00,
         0x00, 0x90, 0x5B, 0x00, 0x00, 0x91, 0x4F, 0x00,
         0x00, 0x90, 0x59, 0x67, 0x00, 0x91, 0x4D, 0x67,
         0x00, 0x93, 0x47, 0x64, 0x83, 0x60, 0x47, 0x00,
         0x00, 0x4F, 0x64, 0x83, 0x60, 0x91, 0x4D, 0x00,
         0x00, 0x90, 0x59, 0x00, 0x00, 0x58, 0x7C, 0x00,
         0x91, 0x4C, 0x7C, 0x87, 0x40, 0x4C, 0x00, 0x00,
         0x90, 0x58, 0x00, 0x00, 0x56, 0x7C, 0x00, 0x91,
         0x4A, 0x7C, 0x87, 0x40, 0x4A, 0x00, 0x00, 0x93,
         0x4F, 0x00, 0x00, 0x92, 0x37, 0x00, 0x00, 0x90,
         0x56, 0x00, 0x00, 0x54, 0x5A, 0x00, 0x91, 0x48,
         0x5A, 0x00, 0x92, 0x34, 0x64, 0x00, 0x93, 0x41,
         0x64, 0x87, 0x40, 0x41, 0x00, 0x00, 0x90, 0x54,
         0x00, 0x00, 0x91, 0x48, 0x00, 0x00, 0x90, 0x54,
         0x6F, 0x00, 0x91, 0x48, 0x6F, 0x00, 0x93, 0x48,
         0x64, 0x83, 0x60, 0x48, 0x00, 0x00, 0x51, 0x64,
         0x83, 0x60, 0x51, 0x00, 0x00, 0x91, 0x48, 0x00,
         0x00, 0x90, 0x54, 0x00, 0x00, 0x92, 0x34, 0x00,
         0x00, 0x90, 0x56, 0x7D, 0x00, 0x91, 0x4A, 0x7D,
         0x00, 0x92, 0x35, 0x64, 0x00, 0x93, 0x43, 0x64,
         0x87, 0x40, 0x43, 0x00, 0x00, 0x90, 0x56, 0x00,
         0x00, 0x91, 0x4A, 0x00, 0x00, 0x92, 0x35, 0x00,
         0x00, 0x90, 0x58, 0x7C, 0x00, 0x91, 0x4C, 0x7C,
         0x00, 0x92, 0x37, 0x64, 0x00, 0x93, 0x47, 0x64,
         0x83, 0x60, 0x47, 0x00, 0x00, 0x4F, 0x64, 0x83,
         0x60, 0x4F, 0x00, 0x00, 0x92, 0x37, 0x00, 0x00,
         0x91, 0x4C, 0x00, 0x00, 0x90, 0x58, 0x00, 0x00,
         0x56, 0x7C, 0x00, 0x91, 0x4A, 0x7C, 0x00, 0x92,
         0x30, 0x64, 0x00, 0x93, 0x3C, 0x64, 0x83, 0x60,
         0x3C, 0x00, 0x00, 0x43, 0x64, 0x83, 0x60, 0x43,
         0x00, 0x00, 0x48, 0x64, 0x83, 0x60, 0x48, 0x00,
         0x00, 0x90, 0x56, 0x00, 0x00, 0x91, 0x4A, 0x00,
         0x00, 0x90, 0x54, 0x53, 0x00, 0x91, 0x48, 0x53,
         0x00, 0x93, 0x4A, 0x64, 0x83, 0x60, 0x4A, 0x00,
         0x00, 0x91, 0x48, 0x00, 0x00, 0x90, 0x54, 0x00,
         0x00, 0x54, 0x67, 0x00, 0x91, 0x48, 0x67, 0x00,
         0x93, 0x4C, 0x64, 0x8F, 0x00, 0x4C, 0x00, 0x00,
         0x92, 0x30, 0x00, 0x00, 0x90, 0x54, 0x00, 0x00,
         0x91, 0x48, 0x00, 0x00, 0x90, 0x56, 0x6F, 0x00,
         0x91, 0x4A, 0x6F, 0x00, 0x92, 0x37, 0x64, 0x00,
         0x93, 0x43, 0x64, 0x83, 0x60, 0x43, 0x00, 0x00,
         0x47, 0x64, 0x83, 0x60, 0x47, 0x00, 0x00, 0x4F,
         0x64, 0x87, 0x40, 0x4F, 0x00, 0x00, 0x90, 0x56,
         0x00, 0x00, 0x91, 0x4A, 0x00, 0x00, 0x90, 0x58,
         0x7C, 0x00, 0x91, 0x4C, 0x7C, 0x00, 0x93, 0x3C,
         0x64, 0x83, 0x60, 0x3C, 0x00, 0x00, 0x43, 0x64,
         0x83, 0x60, 0x43, 0x00, 0x00, 0x91, 0x4C, 0x00,
         0x00, 0x90, 0x58, 0x00, 0x00, 0x54, 0x6F, 0x00,
         0x91, 0x48, 0x6F, 0x00, 0x93, 0x4C, 0x64, 0x87,
         0x40, 0x4C, 0x00, 0x00, 0x92, 0x37, 0x00, 0x00,
         0x90, 0x54, 0x00, 0x00, 0x91, 0x48, 0x00, 0x00,
         0x90, 0x56, 0x7C, 0x00, 0x91, 0x4A, 0x7C, 0x00,
         0x92, 0x37, 0x64, 0x00, 0x93, 0x43, 0x64, 0x83,
         0x60, 0x43, 0x00, 0x00, 0x47, 0x64, 0x83, 0x60,
         0x90, 0x56, 0x00, 0x00, 0x91, 0x4A, 0x00, 0x00,
         0x90, 0x58, 0x67, 0x00, 0x91, 0x4C, 0x67, 0x83,
         0x60, 0x4C, 0x00, 0x00, 0x90, 0x58, 0x00, 0x00,
         0x93, 0x47, 0x00, 0x00, 0x90, 0x59, 0x52, 0x00,
         0x91, 0x4D, 0x52, 0x00, 0x93, 0x4F, 0x64, 0x83,
         0x60, 0x4F, 0x00, 0x00, 0x91, 0x4D, 0x00, 0x00,
         0x90, 0x59, 0x00, 0x00, 0x58, 0x7C, 0x00, 0x91,
         0x4C, 0x7C, 0x00, 0x93, 0x3C, 0x64, 0x83, 0x60,
         0x3C, 0x00, 0x00, 0x43, 0x64, 0x83, 0x60, 0x91,
         0x4C, 0x00, 0x00, 0x90, 0x58, 0x00, 0x00, 0x54,
         0x67, 0x00, 0x91, 0x48, 0x67, 0x83, 0x60, 0x93,
         0x43, 0x00, 0x00, 0x4C, 0x64, 0x83, 0x60, 0x4C,
         0x00, 0x00, 0x91, 0x48, 0x00, 0x00, 0x90, 0x54,
         0x00, 0x00, 0x92, 0x37, 0x00, 0x00, 0x90, 0x56,
         0x7C, 0x00, 0x91, 0x4A, 0x7C, 0x00, 0x92, 0x37,
         0x64, 0x00, 0x93, 0x43, 0x64, 0x83, 0x60, 0x43,
         0x00, 0x00, 0x47, 0x64, 0x83, 0x60, 0x47, 0x00,
         0x00, 0x91, 0x4A, 0x00, 0x00, 0x90, 0x56, 0x00,
         0x00, 0x58, 0x6F, 0x00, 0x91, 0x4C, 0x6F, 0x00,
         0x93, 0x4F, 0x64, 0x83, 0x60, 0x4F, 0x00, 0x00,
         0x91, 0x4C, 0x00, 0x00, 0x90, 0x58, 0x00, 0x00,
         0x59, 0x52, 0x00, 0x91, 0x4D, 0x52, 0x00, 0x93,
         0x44, 0x64, 0x83, 0x60, 0x44, 0x00, 0x00, 0x92,
         0x37, 0x00, 0x00, 0x90, 0x59, 0x00, 0x00, 0x91,
         0x4D, 0x00, 0x00, 0x90, 0x58, 0x7D, 0x00, 0x91,
         0x4C, 0x7D, 0x00, 0x92, 0x38, 0x64, 0x00, 0x93,
         0x45, 0x64, 0x83, 0x60, 0x45, 0x00, 0x00, 0x48,
         0x64, 0x83, 0x60, 0x48, 0x00, 0x00, 0x91, 0x4C,
         0x00, 0x00, 0x90, 0x58, 0x00, 0x00, 0x56, 0x7C,
         0x00, 0x91, 0x4A, 0x7C, 0x00, 0x93, 0x4C, 0x64,
         0x83, 0x60, 0x4C, 0x00, 0x00, 0x51, 0x64, 0x83,
         0x60, 0x51, 0x00, 0x00, 0x91, 0x4A, 0x00, 0x00,
         0x90, 0x56, 0x00, 0x00, 0x92, 0x38, 0x00, 0x00,
         0x90, 0x54, 0x6F, 0x00, 0x91, 0x48, 0x6F, 0x00,
         0x92, 0x39, 0x64, 0x00, 0x93, 0x3E, 0x64, 0x83,
         0x60, 0x3E, 0x00, 0x00, 0x45, 0x64, 0x83, 0x60,
         0x45, 0x00, 0x00, 0x92, 0x39, 0x00, 0x00, 0x91,
         0x48, 0x00, 0x00, 0x90, 0x54, 0x00, 0x00, 0x56,
         0x67, 0x00, 0x91, 0x4A, 0x67, 0x00, 0x92, 0x32,
         0x64, 0x00, 0x93, 0x48, 0x64, 0x83, 0x60, 0x48,
         0x00, 0x00, 0x4E, 0x64, 0x83, 0x60, 0x4E, 0x00,
         0x00, 0x92, 0x32, 0x00, 0x00, 0x91, 0x4A, 0x00,
         0x00, 0x90, 0x56, 0x00, 0x00, 0x4F, 0x6F, 0x00,
         0x91, 0x43, 0x6F, 0x00, 0x92, 0x37, 0x64, 0x00,
         0x93, 0x4F, 0x64, 0x83, 0x60, 0x4F, 0x00, 0x00,
         0x47, 0x64, 0x83, 0x60, 0x47, 0x00, 0x00, 0x91,
         0x43, 0x00, 0x00, 0x90, 0x4F, 0x00, 0x00, 0x58,
         0x7D, 0x00, 0x91, 0x4C, 0x7D, 0x00, 0x93, 0x45,
         0x64, 0x83, 0x60, 0x45, 0x00, 0x00, 0x43, 0x64,
         0x83, 0x60, 0x43, 0x00, 0x00, 0x92, 0x37, 0x00,
         0x00, 0x3C, 0x64, 0x00, 0x93, 0x3C, 0x64, 0x87,
         0x40, 0x3C, 0x00, 0x00, 0x90, 0x58, 0x00, 0x00,
         0x91, 0x4C, 0x00, 0x00, 0x90, 0x58, 0x7D, 0x00,
         0x91, 0x4C, 0x7D, 0x00, 0x93, 0x43, 0x64, 0x83,
         0x60, 0x43, 0x00, 0x00, 0x4C, 0x64, 0x83, 0x60,
         0x92, 0x3C, 0x00, 0x00, 0x91, 0x4C, 0x00, 0x00,
         0x90, 0x58, 0x00, 0x00, 0x59, 0x5A, 0x00, 0x91,
         0x4D, 0x5A, 0x00, 0x92, 0x3B, 0x64, 0x87, 0x40,
         0x91, 0x4D, 0x00, 0x00, 0x90, 0x59, 0x00, 0x00,
         0x5B, 0x6F, 0x00, 0x91, 0x4F, 0x6F, 0x87, 0x40,
         0x4F, 0x00, 0x00, 0x92, 0x3B, 0x00, 0x00, 0x93,
         0x4C, 0x00, 0x00, 0x90, 0x5B, 0x00, 0x00, 0x5B,
         0x67, 0x00, 0x91, 0x4F, 0x67, 0x00, 0x92, 0x3A,
         0x64, 0x00, 0x93, 0x40, 0x64, 0x87, 0x40, 0x40,
         0x00, 0x00, 0x90, 0x5B, 0x00, 0x00, 0x91, 0x4F,
         0x00, 0x00, 0x90, 0x59, 0x6F, 0x00, 0x91, 0x4D,
         0x6F, 0x00, 0x93, 0x47, 0x64, 0x83, 0x60, 0x47,
         0x00, 0x00, 0x4F, 0x64, 0x83, 0x60, 0x92, 0x3A,
         0x00, 0x00, 0x91, 0x4D, 0x00, 0x00, 0x90, 0x59,
         0x00, 0x00, 0x58, 0x6F, 0x00, 0x91, 0x4C, 0x6F,
         0x00, 0x92, 0x39, 0x64, 0x87, 0x40, 0x91, 0x4C,
         0x00, 0x00, 0x90, 0x58, 0x00, 0x00, 0x56, 0x7D,
         0x00, 0x91, 0x4A, 0x7D, 0x87, 0x40, 0x4A, 0x00,
         0x00, 0x92, 0x39, 0x00, 0x00, 0x93, 0x4F, 0x00,
         0x00, 0x90, 0x56, 0x00, 0x00, 0x54, 0x67, 0x00,
         0x91, 0x48, 0x67, 0x00, 0x92, 0x38, 0x64, 0x00,
         0x93, 0x41, 0x64, 0x83, 0x60, 0x41, 0x00, 0x00,
         0x48, 0x64, 0x83, 0x60, 0x90, 0x54, 0x00, 0x00,
         0x91, 0x48, 0x00, 0x00, 0x90, 0x54, 0x6F, 0x00,
         0x91, 0x48, 0x6F, 0x83, 0x60, 0x93, 0x48, 0x00,
         0x00, 0x51, 0x64, 0x83, 0x60, 0x51, 0x00, 0x00,
         0x91, 0x48, 0x00, 0x00, 0x90, 0x54, 0x00, 0x00,
         0x92, 0x38, 0x00, 0x00, 0x90, 0x56, 0x7C, 0x00,
         0x91, 0x4A, 0x7C, 0x00, 0x92, 0x37, 0x64, 0x00,
         0x93, 0x43, 0x64, 0x83, 0x60, 0x43, 0x00, 0x00,
         0x47, 0x64, 0x83, 0x60, 0x90, 0x56, 0x00, 0x00,
         0x91, 0x4A, 0x00, 0x00, 0x90, 0x58, 0x6F, 0x00,
         0x91, 0x4C, 0x6F, 0x83, 0x60, 0x93, 0x47, 0x00,
         0x00, 0x4F, 0x64, 0x83, 0x60, 0x4F, 0x00, 0x00,
         0x91, 0x4C, 0x00, 0x00, 0x90, 0x58, 0x00, 0x00,
         0x92, 0x37, 0x00, 0x00, 0x90, 0x56, 0x7C, 0x00,
         0x91, 0x4A, 0x7C, 0x00, 0x92, 0x35, 0x64, 0x00,
         0x93, 0x3C, 0x64, 0x87, 0x40, 0x3C, 0x00, 0x00,
         0x92, 0x35, 0x00, 0x00, 0x37, 0x64, 0x00, 0x93,
         0x43, 0x64, 0x83, 0x60, 0x91, 0x4A, 0x00, 0x00,
         0x90, 0x56, 0x00, 0x00, 0x54, 0x7C, 0x00, 0x91,
         0x48, 0x7C, 0x83, 0x60, 0x48, 0x00, 0x00, 0x90,
         0x54, 0x00, 0x00, 0x92, 0x37, 0x00, 0x00, 0x90,
         0x54, 0x7C, 0x00, 0x91, 0x48, 0x7C, 0x00, 0x92,
         0x30, 0x64, 0x87, 0x40, 0x93, 0x43, 0x00, 0x00,
         0x4C, 0x64, 0x87, 0x40, 0x4C, 0x00, 0x00, 0x92,
         0x30, 0x00, 0x00, 0x91, 0x48, 0x00, 0x00, 0x90,
         0x54, 0x00, 0x00, 0xFF, 0x2F, 0x00,
     };

#define  UFOEAT_MIDI 108

__align(2)
     const U8 UfoEat_midi[] = 
     {
         0x4D, 0x54, 0x68, 0x64, 0x00, 0x00, 0x00, 0x06,
         0x00, 0x00, 0x00, 0x01, 0x03, 0xC0, 0x4D, 0x54,
         0x72, 0x6B, 0x00, 0x00, 0x00, 0x56, 0x00, 0xFF,
         0x02, 0x16, 0x43, 0x6F, 0x70, 0x79, 0x72, 0x69,
         0x67, 0x68, 0x74, 0x20, 0x63, 0x20, 0x32, 0x30,
         0x30, 0x33, 0x20, 0x62, 0x79, 0x20, 0x43, 0x43,
         0x00, 0xFF, 0x01, 0x02, 0x43, 0x43, 0x00, 0xFF,
         0x58, 0x04, 0x04, 0x02, 0x18, 0x08, 0x00, 0xFF,
         0x59, 0x02, 0x00, 0x00, 0x00, 0xFF, 0x51, 0x03,
         0x09, 0x27, 0xC0, 0x00, 0xC0, 0x09, 0x00, 0x90,
         0x59, 0x64, 0x00, 0x51, 0x64, 0x05, 0x54, 0x64,
         0x00, 0x4D, 0x64, 0x83, 0x5B, 0x51, 0x00, 0x00,
         0x59, 0x00, 0x05, 0x54, 0x00, 0x00, 0x4D, 0x00,
         0x00, 0xFF, 0x2F, 0x00,
     };

#define  UFOEXPLODE_WAV  7860

__align(2)
     const U8 UfoExplode_wav[] = 
     {
         0x52, 0x49, 0x46, 0x46, 0xAC, 0x1E, 0x00, 0x00,
         0x57, 0x41, 0x56, 0x45, 0x66, 0x6D, 0x74, 0x20,
         0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
         0x70, 0x17, 0x00, 0x00, 0xE0, 0x2E, 0x00, 0x00,
         0x02, 0x00, 0x10, 0x00, 0x64, 0x61, 0x74, 0x61,
         0x88, 0x1E, 0x00, 0x00, 0x95, 0x01, 0xD3, 0xFC,
         0xD6, 0x03, 0x1F, 0x0E, 0x5C, 0x00, 0x27, 0xF9,
         0xAE, 0xF9, 0x2C, 0x07, 0x6B, 0x09, 0x70, 0x02,
         0x05, 0x14, 0x22, 0x15, 0x0B, 0x17, 0x43, 0x07,
         0xC3, 0x0E, 0xD9, 0x0A, 0xBE, 0x0B, 0x5F, 0x09,
         0x4A, 0x0A, 0xD8, 0x08, 0x63, 0x0E, 0x84, 0x16,
         0x43, 0x02, 0x81, 0x04, 0xC1, 0xFD, 0xC2, 0x0B,
         0x5B, 0x05, 0x95, 0x05, 0xBE, 0x0C, 0x07, 0x03,
         0x2B, 0xFF, 0x63, 0x09, 0x4F, 0x02, 0xC8, 0xF9,
         0x73, 0x0B, 0x91, 0x0A, 0xDC, 0x0C, 0xAD, 0x12,
         0xC7, 0x17, 0x52, 0x24, 0x06, 0x26, 0x77, 0x0B,
         0x7C, 0xE0, 0xEF, 0xE0, 0xC9, 0xE1, 0xD1, 0xFA,
         0xCA, 0x25, 0xAF, 0x47, 0x80, 0x44, 0x01, 0x29,
         0xF2, 0x12, 0xFF, 0xF8, 0x2E, 0xCB, 0xAB, 0xCF,
         0x34, 0xDC, 0xB8, 0x04, 0x59, 0x16, 0x42, 0x0C,
         0x86, 0x0C, 0x6E, 0x2A, 0xFC, 0x34, 0xC0, 0x2A,
         0xDC, 0x07, 0x5D, 0xE6, 0xFE, 0xD9, 0x63, 0xDA,
         0x62, 0xE4, 0xC4, 0xEC, 0x44, 0xE8, 0xDC, 0xE2,
         0x6C, 0xFA, 0x81, 0x01, 0xEF, 0x12, 0x24, 0x0E,
         0xD2, 0x11, 0xF1, 0x01, 0x3C, 0xF7, 0xE7, 0xFB,
         0x14, 0xFD, 0xEE, 0x0F, 0xF0, 0x1E, 0x4B, 0x29,
         0x03, 0x22, 0x35, 0x02, 0xEC, 0xF5, 0xBC, 0xDF,
         0x79, 0xD2, 0xD8, 0xE6, 0xD7, 0xEC, 0xC3, 0xEC,
         0x19, 0xD7, 0x16, 0xDD, 0xCE, 0xE6, 0xE2, 0xEC,
         0x04, 0xFD, 0x9D, 0xFB, 0x59, 0xF5, 0x66, 0xFB,
         0x8C, 0x03, 0x92, 0xFE, 0xF1, 0xEC, 0xA9, 0xCE,
         0xEA, 0xCC, 0x5B, 0xDA, 0xC8, 0xD1, 0xFD, 0xE6,
         0xBB, 0xF0, 0x67, 0xF6, 0xE8, 0x0C, 0x7B, 0x1E,
         0x5E, 0x2F, 0x4D, 0x24, 0x6D, 0x28, 0xA1, 0x11,
         0xC8, 0xF8, 0x0D, 0xD6, 0xBD, 0xBF, 0x22, 0xCC,
         0x56, 0xC8, 0xC7, 0xD3, 0x4A, 0xD9, 0x5A, 0xEE,
         0x91, 0x0B, 0xF5, 0x1B, 0x99, 0x21, 0x1E, 0x2C,
         0xC0, 0x19, 0x97, 0x23, 0x87, 0x1A, 0x7C, 0x0F,
         0xCA, 0x01, 0x81, 0xF1, 0xA3, 0xDE, 0x74, 0xE8,
         0xD3, 0xDC, 0x22, 0xEF, 0xAE, 0xFB, 0xC7, 0x03,
         0xF1, 0xFF, 0xBD, 0xF9, 0x3E, 0xEC, 0xC0, 0xDE,
         0x0E, 0xD4, 0xC3, 0xE4, 0xF7, 0xE7, 0xA2, 0xEF,
         0x8B, 0xEF, 0x3D, 0xEC, 0x33, 0xF4, 0xE9, 0xF0,
         0x75, 0xF5, 0x54, 0x02, 0x68, 0xF1, 0xA9, 0xEA,
         0x67, 0xF2, 0x0D, 0xF0, 0x93, 0xFB, 0xB0, 0xF4,
         0x10, 0x10, 0x39, 0x0A, 0xEB, 0x15, 0x29, 0x0E,
         0x47, 0x16, 0x62, 0x12, 0x40, 0x07, 0x5D, 0xFD,
         0x51, 0xE8, 0x98, 0xD0, 0x55, 0xCB, 0x9D, 0xD5,
         0xDA, 0xF1, 0x95, 0x12, 0xC2, 0x17, 0xED, 0x14,
         0x66, 0x07, 0x3D, 0x08, 0xBC, 0xFF, 0xA1, 0xED,
         0x53, 0xE5, 0xA1, 0xDF, 0x29, 0xD6, 0xF7, 0xDD,
         0xC1, 0xEF, 0x61, 0x13, 0xE5, 0x21, 0x88, 0x25,
         0x8C, 0x17, 0x7C, 0x0B, 0xB0, 0xF2, 0xFE, 0xE1,
         0xB6, 0xD7, 0x93, 0xF3, 0xA0, 0xF4, 0x47, 0xF7,
         0x66, 0x11, 0x78, 0x2A, 0x25, 0x3B, 0x3B, 0x48,
         0x2C, 0x44, 0x64, 0x14, 0xFC, 0xE9, 0x74, 0xD1,
         0x37, 0xBD, 0x38, 0xBD, 0x2F, 0xB2, 0xA2, 0xCF,
         0x3F, 0xF3, 0x3D, 0x06, 0xFF, 0x06, 0x44, 0x14,
         0xC7, 0x12, 0xBD, 0x08, 0x66, 0x13, 0x3A, 0x13,
         0x12, 0xFA, 0xBD, 0xEE, 0xBB, 0xDC, 0x9F, 0xCD,
         0x66, 0xCE, 0x71, 0xBD, 0xE7, 0xB8, 0x12, 0xCC,
         0x10, 0xFD, 0x9C, 0x12, 0x7E, 0x06, 0xC3, 0xF0,
         0x1E, 0xDE, 0x81, 0xE4, 0x04, 0x0C, 0x7A, 0x3D,
         0xA2, 0x4E, 0xF5, 0x57, 0xB1, 0x58, 0x58, 0x3D,
         0x99, 0x30, 0x40, 0x20, 0x54, 0x1E, 0xA3, 0x31,
         0xA4, 0x21, 0xF0, 0x12, 0x94, 0xE5, 0xAE, 0xD3,
         0x48, 0xC8, 0xE2, 0xDC, 0x10, 0xE9, 0x09, 0xE7,
         0x58, 0xF8, 0x42, 0x09, 0x03, 0x2E, 0xA1, 0x23,
         0x7C, 0x15, 0x55, 0xFD, 0x71, 0xE4, 0x47, 0xC1,
         0x0E, 0xB5, 0xC9, 0xCA, 0xF5, 0xD0, 0x32, 0xD8,
         0x09, 0xF1, 0xB0, 0x04, 0x7C, 0x28, 0x1C, 0x29,
         0x5B, 0x32, 0x49, 0x3D, 0xD5, 0x1B, 0x21, 0xF0,
         0xFA, 0xD5, 0xD8, 0xCE, 0x66, 0xCF, 0x33, 0xF1,
         0x8F, 0x14, 0x14, 0x28, 0xC9, 0x20, 0x6E, 0x1C,
         0x12, 0x17, 0x68, 0xFC, 0x54, 0xFD, 0xAB, 0xE5,
         0x88, 0xE1, 0x57, 0xED, 0xBD, 0x1A, 0xF2, 0x32,
         0xF9, 0x3B, 0xB5, 0x26, 0x52, 0x23, 0x0A, 0x37,
         0x44, 0x44, 0x75, 0x48, 0x56, 0x59, 0x98, 0x42,
         0x1F, 0x1C, 0x31, 0xDC, 0x6C, 0xAC, 0x2A, 0xB7,
         0x01, 0xDC, 0xA7, 0x01, 0x70, 0x22, 0x16, 0x23,
         0xFA, 0x19, 0xC4, 0x10, 0xDA, 0xF9, 0x79, 0xE6,
         0x3D, 0xD6, 0x62, 0xDD, 0xBF, 0xE7, 0x4D, 0xEA,
         0xD4, 0xE7, 0x5C, 0xF9, 0x07, 0xFB, 0x72, 0x04,
         0xFF, 0x28, 0xBD, 0x41, 0xB7, 0x49, 0xA6, 0x3B,
         0xF8, 0x16, 0x51, 0x06, 0x70, 0xE5, 0xB1, 0xC1,
         0x87, 0xCD, 0x19, 0xEA, 0xCC, 0xFA, 0xD8, 0x15,
         0xD7, 0x28, 0x84, 0x32, 0x2C, 0x1F, 0xF2, 0xEC,
         0x47, 0xD4, 0x80, 0xD6, 0xB4, 0xD9, 0x6E, 0x0A,
         0xA8, 0x44, 0xB3, 0x3D, 0xC3, 0x29, 0xEB, 0x30,
         0x8B, 0x34, 0x05, 0x20, 0x96, 0x05, 0x92, 0xE5,
         0xFF, 0xD8, 0xCD, 0xF2, 0x1C, 0xF5, 0x8C, 0xFB,
         0x12, 0xF7, 0x54, 0xF5, 0xE1, 0xF4, 0x36, 0x03,
         0xAA, 0x2D, 0xD9, 0x2F, 0xB5, 0x1D, 0xC7, 0x1A,
         0x70, 0x12, 0x08, 0x23, 0x47, 0xFE, 0x4E, 0x15,
         0xAB, 0x39, 0x6B, 0x39, 0xB7, 0x31, 0x9B, 0x08,
         0xAE, 0xFA, 0x7C, 0xF7, 0x1D, 0xE7, 0x24, 0xD5,
         0xA5, 0xC4, 0x9C, 0xC6, 0xBC, 0xC3, 0xF9, 0xD0,
         0x02, 0xFA, 0xA2, 0x42, 0x0D, 0x56, 0x76, 0x4C,
         0xF1, 0x35, 0x66, 0x1F, 0x51, 0xFB, 0x4F, 0xE6,
         0x83, 0xBF, 0xF1, 0x9A, 0x6B, 0x92, 0x26, 0x99,
         0x6A, 0xB5, 0xB7, 0x01, 0x66, 0x48, 0x9E, 0x5F,
         0xA7, 0x65, 0x2D, 0x5E, 0x0A, 0x50, 0x5A, 0x3F,
         0x64, 0x30, 0xCD, 0xE6, 0x20, 0xBF, 0x56, 0xD4,
         0x0C, 0xDA, 0xDB, 0xFA, 0xEA, 0x2D, 0xEC, 0x4E,
         0x1D, 0x2C, 0x9D, 0xFC, 0x45, 0xE1, 0x07, 0xDA,
         0x6A, 0xDC, 0x64, 0xE0, 0x40, 0xE2, 0x52, 0xE4,
         0x5B, 0xEE, 0xD2, 0x0D, 0xC2, 0x16, 0x9B, 0x2B,
         0xC7, 0x3F, 0x45, 0x42, 0x14, 0x48, 0x8B, 0x2B,
         0xFF, 0xFD, 0xB3, 0xC2, 0xD7, 0xBF, 0xB4, 0xD3,
         0x9F, 0xE1, 0xCB, 0x04, 0x93, 0xFC, 0xC1, 0x0B,
         0xB2, 0x32, 0x65, 0x4F, 0xC4, 0x2A, 0xDC, 0xEA,
         0xB4, 0xB3, 0xCF, 0xA1, 0x7E, 0xA1, 0xEA, 0xCC,
         0xF6, 0xE6, 0xA7, 0xEA, 0xA5, 0xEB, 0xB4, 0xE2,
         0xB6, 0xEC, 0x4B, 0xE3, 0x6E, 0x24, 0xB2, 0x2F,
         0x41, 0x39, 0x32, 0x38, 0xB0, 0x32, 0x5D, 0x34,
         0x60, 0x1E, 0xD5, 0x1A, 0x48, 0x1B, 0x8D, 0xEF,
         0x55, 0xE4, 0xB5, 0xED, 0x6C, 0x03, 0xF7, 0x28,
         0xCD, 0x39, 0x22, 0x3A, 0xC9, 0x10, 0x43, 0xEB,
         0x64, 0xFD, 0x89, 0x20, 0x59, 0x33, 0xA1, 0x21,
         0xDA, 0x0D, 0xD3, 0xF9, 0x32, 0x2C, 0x24, 0x42,
         0x4B, 0x2C, 0x6E, 0x01, 0x18, 0xD8, 0x9E, 0xD8,
         0xE6, 0xD3, 0x19, 0xCA, 0xB6, 0xEE, 0x5B, 0xFA,
         0x0D, 0xFF, 0x50, 0x0E, 0x61, 0x34, 0x98, 0x42,
         0x86, 0x33, 0x89, 0x11, 0xEB, 0xD8, 0x1B, 0xE0,
         0x51, 0xCB, 0x85, 0xC8, 0xA2, 0xD9, 0xED, 0xC3,
         0xA3, 0xA5, 0xF1, 0x8F, 0xE6, 0x90, 0x0D, 0xD3,
         0x3F, 0x27, 0x42, 0x47, 0x20, 0x43, 0x58, 0x52,
         0x3E, 0x6D, 0xF9, 0x50, 0x6E, 0x4D, 0x54, 0x33,
         0xE4, 0x11, 0x9D, 0xFA, 0x64, 0xDA, 0xDF, 0xE0,
         0x66, 0xD9, 0xC9, 0xC0, 0xF3, 0xCF, 0x86, 0xFD,
         0x76, 0x2F, 0xD0, 0x38, 0xC0, 0x36, 0x9B, 0x21,
         0x0E, 0x0C, 0x06, 0xFF, 0xD5, 0xEB, 0x6F, 0xD2,
         0x19, 0xBD, 0x66, 0xAD, 0x6F, 0xCD, 0xE2, 0xFE,
         0x94, 0x35, 0xD3, 0x3F, 0x72, 0x27, 0x16, 0xFA,
         0x47, 0xD1, 0x83, 0xA5, 0x62, 0xA6, 0x01, 0xCD,
         0x5A, 0xF6, 0x4A, 0x00, 0xC4, 0x12, 0x7E, 0x0E,
         0xFB, 0x2E, 0x69, 0x2A, 0x60, 0x1D, 0xD8, 0xEF,
         0x9B, 0xF7, 0x7D, 0x23, 0x03, 0x18, 0x0C, 0x1C,
         0xFF, 0x12, 0x71, 0x24, 0x85, 0x12, 0xAC, 0xF4,
         0x90, 0xEE, 0x67, 0x09, 0x7A, 0x1D, 0x37, 0x23,
         0x08, 0x0C, 0x04, 0xE6, 0x8C, 0xC5, 0xFD, 0xC4,
         0x2B, 0xC9, 0xCB, 0xC6, 0x68, 0xBC, 0x5A, 0xC5,
         0x93, 0xF1, 0x11, 0x0A, 0x96, 0x09, 0x6E, 0x11,
         0x6F, 0x10, 0xD6, 0xE3, 0xDF, 0xF5, 0xA6, 0xEF,
         0xA3, 0x0B, 0xEB, 0x1C, 0xDC, 0x1A, 0x0C, 0x39,
         0xA0, 0x49, 0xA6, 0x3B, 0x41, 0x49, 0x73, 0x2B,
         0xB8, 0xFF, 0x6B, 0xE1, 0x01, 0xDD, 0xF4, 0xD2,
         0xEE, 0xBF, 0x8E, 0xD5, 0xB5, 0x2B, 0x05, 0x4D,
         0x56, 0x5C, 0x9F, 0x2F, 0x40, 0xED, 0xCB, 0xB7,
         0xEC, 0xA6, 0x28, 0xB3, 0xE4, 0xD6, 0x09, 0xEF,
         0x56, 0xCF, 0x4A, 0xCE, 0xCE, 0xE7, 0x55, 0x09,
         0x09, 0x24, 0x68, 0x16, 0xCD, 0xF6, 0x19, 0xB6,
         0xC3, 0xA1, 0xA8, 0xCE, 0xD1, 0xEC, 0xB9, 0x2C,
         0xD9, 0x25, 0x55, 0x18, 0x29, 0x0C, 0xD8, 0xF9,
         0xA4, 0x0C, 0x41, 0xEF, 0x77, 0xE8, 0x3E, 0xFC,
         0x77, 0xF3, 0xC4, 0xE2, 0x2F, 0xE4, 0x08, 0xF8,
         0x7D, 0xFE, 0x7D, 0x3E, 0x3A, 0x33, 0x7A, 0x25,
         0xC0, 0xEE, 0x0F, 0xC5, 0xA7, 0xE3, 0xE1, 0xF3,
         0x4B, 0x07, 0x8A, 0x40, 0x63, 0x36, 0x5B, 0x35,
         0xCA, 0x2B, 0xD4, 0x10, 0x7E, 0xDB, 0xE6, 0xAB,
         0x23, 0x9F, 0x2F, 0xC6, 0x32, 0x07, 0x8D, 0x2E,
         0x0B, 0xCD, 0x09, 0xAC, 0xEA, 0xD7, 0x09, 0x30,
         0x6E, 0x43, 0xF6, 0x2D, 0xF8, 0xF7, 0x76, 0xE1,
         0x24, 0xE0, 0x7F, 0xD2, 0xF5, 0xEB, 0x4B, 0x11,
         0x7C, 0x17, 0xFE, 0xF4, 0xF9, 0xCE, 0x48, 0xD4,
         0xF6, 0xCF, 0x5D, 0xC1, 0x94, 0xB0, 0x06, 0xAB,
         0x2E, 0xB3, 0x1C, 0xCF, 0xCC, 0x28, 0xCB, 0x3E,
         0x65, 0x3B, 0x90, 0x45, 0x69, 0x3E, 0x68, 0x22,
         0x89, 0x0D, 0x32, 0xF9, 0xAA, 0x08, 0x56, 0xD6,
         0x76, 0xB0, 0xB9, 0x9B, 0xB5, 0x9D, 0xB4, 0xE3,
         0xDC, 0x12, 0x38, 0x40, 0x0A, 0x2C, 0x69, 0x49,
         0xF0, 0x4F, 0x5D, 0x3F, 0xD3, 0x01, 0x3B, 0xC1,
         0x25, 0xAD, 0x8B, 0xA6, 0x33, 0xBF, 0xAD, 0xE0,
         0x8F, 0x06, 0x02, 0x1E, 0xBD, 0x18, 0x56, 0xFD,
         0x8C, 0xF4, 0xBB, 0x05, 0xB1, 0x25, 0x88, 0x40,
         0xCC, 0x2F, 0x9D, 0x09, 0x37, 0x09, 0x70, 0xEE,
         0x4C, 0xFE, 0x74, 0x27, 0xFA, 0x39, 0xC1, 0x31,
         0xBE, 0x1B, 0xDE, 0xF1, 0x1C, 0xD8, 0xC4, 0xAA,
         0x08, 0x9A, 0x4B, 0xCD, 0x73, 0x27, 0x35, 0x3C,
         0x6C, 0x2E, 0xC9, 0x43, 0x1C, 0x56, 0xAC, 0x5C,
         0x42, 0x1E, 0x6A, 0xDC, 0xB8, 0xAE, 0x8C, 0xAA,
         0xBC, 0xA9, 0xE8, 0x9F, 0x27, 0x0F, 0x8B, 0x4C,
         0x5E, 0x38, 0xDE, 0x11, 0xB7, 0xDA, 0x75, 0x3C,
         0x0F, 0x55, 0x7D, 0x3C, 0xF2, 0x1A, 0x47, 0x04,
         0xCF, 0x0D, 0xF7, 0xFA, 0x6D, 0xAA, 0x37, 0xAF,
         0xC4, 0xC3, 0xBC, 0xAC, 0xEE, 0xD4, 0x6D, 0x0F,
         0xFB, 0x02, 0x96, 0xCB, 0x12, 0xC1, 0x93, 0xF1,
         0xB3, 0xF0, 0xEB, 0x09, 0x04, 0x24, 0xC5, 0x2D,
         0x18, 0x48, 0x60, 0x4E, 0xBA, 0x36, 0x52, 0x27,
         0x1A, 0x2B, 0x56, 0xF8, 0xA7, 0xCC, 0x61, 0xB0,
         0x00, 0xA0, 0x16, 0xC6, 0x40, 0x28, 0xB6, 0x60,
         0xB6, 0x50, 0x82, 0x5B, 0x6D, 0x4D, 0x91, 0x4D,
         0x33, 0x40, 0xBB, 0x15, 0x27, 0xFD, 0x6E, 0xCA,
         0xB0, 0xBC, 0xB4, 0xBA, 0x02, 0xDB, 0x88, 0x08,
         0xC3, 0x0A, 0x4E, 0xFE, 0x79, 0xF9, 0x6E, 0xE8,
         0xB0, 0xDA, 0x50, 0xB9, 0x5E, 0xA8, 0x1A, 0xCC,
         0xFD, 0x1C, 0xFF, 0x5A, 0x43, 0x66, 0x49, 0x6D,
         0x4B, 0x59, 0xAF, 0x1B, 0x05, 0xC9, 0x00, 0xB2,
         0x4E, 0xC4, 0xA1, 0xC7, 0xA1, 0xD8, 0x35, 0xBA,
         0x34, 0xAC, 0x39, 0xED, 0x80, 0x21, 0x66, 0x1E,
         0x3C, 0x30, 0x84, 0x57, 0xE2, 0x4B, 0x1F, 0x28,
         0x6A, 0x0E, 0xA4, 0xED, 0x47, 0xBC, 0xF4, 0xA0,
         0x16, 0xA2, 0xEB, 0xF2, 0x66, 0x46, 0xC0, 0x54,
         0x7D, 0x3D, 0x31, 0x18, 0x08, 0xE9, 0x80, 0xCC,
         0x49, 0xB4, 0xFB, 0xB3, 0x8F, 0xD2, 0xB3, 0xFB,
         0x3A, 0x3D, 0xEB, 0x56, 0x9F, 0x58, 0xF6, 0x27,
         0x3F, 0xE2, 0x7E, 0xD9, 0x3E, 0xC1, 0x0E, 0xB1,
         0x71, 0xD4, 0x0C, 0xF0, 0x3B, 0xC2, 0x31, 0xB7,
         0x93, 0x08, 0x92, 0x5C, 0xB0, 0x74, 0xFF, 0x7F,
         0x84, 0x77, 0x9B, 0x46, 0x51, 0xC1, 0xE1, 0xB0,
         0xA2, 0xA4, 0xB8, 0x90, 0xEC, 0xD5, 0x5C, 0x3B,
         0xCA, 0x36, 0x33, 0x3F, 0xCB, 0x07, 0x58, 0x14,
         0x7F, 0x27, 0x6B, 0x2A, 0x2E, 0x1A, 0x16, 0x19,
         0x88, 0x03, 0x4D, 0xBE, 0xCF, 0xAD, 0x2A, 0xBC,
         0x26, 0xDF, 0xDA, 0xFD, 0x36, 0x05, 0x80, 0xF9,
         0xA8, 0xD9, 0x61, 0xAB, 0x31, 0x98, 0x50, 0x97,
         0xF9, 0xA4, 0x15, 0xC5, 0xDF, 0xCC, 0x3C, 0x2A,
         0xA1, 0x62, 0x2A, 0x78, 0x0D, 0x7D, 0x13, 0x3D,
         0x4F, 0xE4, 0xD8, 0xC6, 0xD7, 0xAA, 0xB4, 0xBD,
         0xA3, 0x12, 0x5B, 0x2B, 0xBE, 0x2E, 0x76, 0x26,
         0xEA, 0xDD, 0x1E, 0xF1, 0x07, 0x20, 0xCF, 0x47,
         0x28, 0x72, 0x1A, 0x7D, 0xF4, 0x7B, 0x7A, 0x67,
         0x9D, 0x3E, 0x0D, 0xB8, 0xB3, 0x83, 0x9B, 0x89,
         0xD6, 0xB4, 0xC0, 0xF2, 0x42, 0x13, 0xB2, 0x3D,
         0x23, 0x37, 0x23, 0x32, 0xB2, 0x3C, 0x24, 0x00,
         0x0A, 0xD4, 0x9C, 0x9F, 0xEB, 0x9C, 0x56, 0xA8,
         0xE4, 0xC4, 0x2E, 0x07, 0x65, 0x2D, 0x39, 0x37,
         0x08, 0x26, 0x94, 0x27, 0x78, 0x28, 0x4B, 0xFB,
         0x61, 0xB5, 0x98, 0x9B, 0x79, 0xAA, 0xE6, 0xEB,
         0xB9, 0xFB, 0x82, 0x2A, 0x67, 0x42, 0xE9, 0x55,
         0xEF, 0x46, 0xCF, 0x14, 0xAE, 0x2F, 0x90, 0x28,
         0x4B, 0xFA, 0xB6, 0xF5, 0x29, 0xFB, 0x99, 0x08,
         0xF6, 0x11, 0xB9, 0x17, 0xC8, 0xEF, 0x5E, 0xD4,
         0x3D, 0xCB, 0x26, 0xD3, 0x6B, 0xE1, 0xEC, 0xFC,
         0x42, 0x06, 0xC6, 0xE7, 0x30, 0xC9, 0xCE, 0xDB,
         0x32, 0xD7, 0x41, 0xE8, 0x9F, 0xEE, 0xFA, 0xDE,
         0x54, 0xD7, 0xFD, 0xDA, 0x75, 0xBD, 0x87, 0xCC,
         0x49, 0xE7, 0x38, 0xF4, 0xD7, 0x04, 0x66, 0x27,
         0x7E, 0x35, 0xA0, 0x5D, 0xB6, 0x39, 0xE2, 0x22,
         0xE4, 0x19, 0xB8, 0x38, 0xA7, 0x34, 0xA8, 0x3D,
         0x03, 0x4E, 0x6B, 0x4B, 0x5D, 0x14, 0xBF, 0xFD,
         0x45, 0xF3, 0xBD, 0xD0, 0xF1, 0xB6, 0x10, 0x9E,
         0xCA, 0x99, 0xE3, 0xA9, 0xAA, 0xCF, 0x1A, 0xF9,
         0x62, 0x01, 0x16, 0x36, 0x14, 0x27, 0x74, 0x10,
         0x51, 0x18, 0x9A, 0x0A, 0xC2, 0x1E, 0x56, 0x35,
         0xEE, 0xF5, 0x21, 0x0A, 0xA5, 0x24, 0xE4, 0x12,
         0xE9, 0xE2, 0x92, 0x16, 0xF4, 0x62, 0x4D, 0x7C,
         0xF7, 0x6D, 0x6D, 0x29, 0xA5, 0xCC, 0xAA, 0xC8,
         0x20, 0xA5, 0x8E, 0xB0, 0x08, 0xC3, 0x42, 0xDB,
         0x5F, 0xF7, 0xB2, 0x0B, 0x9C, 0x19, 0xE5, 0x14,
         0xDE, 0x21, 0x61, 0x09, 0x06, 0xFA, 0xC4, 0xD0,
         0xD2, 0xDD, 0xAB, 0xD1, 0x0C, 0xCE, 0x3F, 0xEC,
         0x9E, 0x16, 0x59, 0x29, 0xC4, 0x1B, 0x9A, 0xF9,
         0x3E, 0xBB, 0x3D, 0xBA, 0xC8, 0xB7, 0xBB, 0xBD,
         0x89, 0xB2, 0xE9, 0xCA, 0x5C, 0xFB, 0x30, 0x24,
         0x68, 0x13, 0xB7, 0xF6, 0x53, 0xF4, 0xE9, 0x07,
         0x4C, 0x22, 0xBB, 0x2D, 0xBA, 0x3E, 0x73, 0x48,
         0x53, 0x41, 0x77, 0x30, 0xCB, 0x10, 0x31, 0x3C,
         0x55, 0x25, 0xFD, 0xEE, 0xE6, 0x03, 0x49, 0x0F,
         0x73, 0x24, 0x60, 0x12, 0x5D, 0xF4, 0xDB, 0xF7,
         0x76, 0xE9, 0x7A, 0xD6, 0xAC, 0xF4, 0xC1, 0xC4,
         0x82, 0xBB, 0x6A, 0xDA, 0xFF, 0xE4, 0xD3, 0xDE,
         0x30, 0xEF, 0xFC, 0xF3, 0x0E, 0xB7, 0x5E, 0xBD,
         0xA8, 0xDE, 0x24, 0x12, 0xED, 0x34, 0x98, 0x24,
         0xDA, 0x28, 0x23, 0x39, 0x5C, 0x23, 0x5D, 0xF7,
         0xB7, 0xE3, 0x83, 0xFC, 0xE8, 0x19, 0xE2, 0x2F,
         0xEF, 0x2B, 0x51, 0xD7, 0x6B, 0xD8, 0x67, 0x0E,
         0xD1, 0x04, 0xC6, 0xCC, 0x61, 0xF2, 0x6F, 0xFF,
         0xAD, 0xE1, 0xF5, 0xD4, 0x4F, 0xF7, 0x36, 0x2A,
         0x6F, 0x08, 0x27, 0xF9, 0x67, 0x21, 0xAF, 0x0A,
         0x93, 0x19, 0x67, 0x02, 0xCC, 0xE6, 0xA6, 0xF6,
         0x9C, 0xDC, 0x6C, 0x16, 0x65, 0x16, 0x04, 0xBB,
         0x31, 0xB2, 0xC2, 0xC0, 0x84, 0xDE, 0xDD, 0x00,
         0x91, 0x1C, 0x7F, 0x50, 0x97, 0x74, 0x01, 0x52,
         0x32, 0x01, 0x5E, 0xD8, 0x1D, 0x04, 0xDC, 0x2C,
         0x49, 0x01, 0x95, 0xFC, 0x33, 0xFE, 0x4B, 0x30,
         0x2B, 0x39, 0xE5, 0x20, 0x9E, 0x2B, 0x89, 0x1F,
         0x70, 0xC6, 0x47, 0xB5, 0x74, 0xAA, 0xEE, 0xD1,
         0x22, 0x39, 0x91, 0x36, 0x25, 0x3E, 0x35, 0x13,
         0x30, 0x0E, 0xFE, 0xDB, 0xB8, 0xA8, 0x20, 0xC2,
         0x61, 0xB5, 0x8F, 0xA2, 0x63, 0xB5, 0x9C, 0xFA,
         0xE2, 0x20, 0xDF, 0x06, 0x21, 0xE5, 0xA8, 0x1E,
         0x31, 0x67, 0x83, 0x55, 0x23, 0x50, 0xD2, 0x40,
         0xF0, 0x37, 0x75, 0x12, 0xBB, 0x0C, 0x26, 0xFA,
         0x23, 0xEE, 0x31, 0x0B, 0xA6, 0x18, 0xD5, 0x25,
         0x4A, 0x32, 0x8B, 0x5F, 0x2E, 0x55, 0x52, 0x40,
         0xA8, 0x21, 0xA0, 0x05, 0xCA, 0xE3, 0xAB, 0xAE,
         0xA4, 0xE2, 0xBF, 0x00, 0x87, 0x06, 0x75, 0x20,
         0x58, 0x36, 0xA9, 0xE6, 0xAB, 0xA3, 0x38, 0x84,
         0x9C, 0x99, 0xE4, 0xBB, 0x70, 0xA9, 0x26, 0xA8,
         0x7B, 0xC0, 0x32, 0xEA, 0x9E, 0x2D, 0x7C, 0x16,
         0xE1, 0x3F, 0xDB, 0x60, 0x9E, 0x46, 0x0F, 0x3F,
         0xB2, 0x09, 0xE7, 0xF5, 0x17, 0x03, 0x0F, 0xDA,
         0x38, 0xE2, 0xED, 0x2D, 0xEE, 0x42, 0x6A, 0x5D,
         0x34, 0x5C, 0x6A, 0x45, 0xDD, 0x00, 0x3D, 0x0B,
         0xE8, 0xFE, 0x34, 0xF9, 0x30, 0x2D, 0xF9, 0x13,
         0x6E, 0x31, 0xF8, 0x24, 0x9E, 0x01, 0x3C, 0xE4,
         0x31, 0xEF, 0x90, 0xFA, 0x70, 0x22, 0xF1, 0x03,
         0x3E, 0xD1, 0xED, 0xFA, 0xAA, 0x11, 0x11, 0xF2,
         0xC6, 0xBC, 0x38, 0xAF, 0x26, 0xD2, 0x77, 0x07,
         0x1A, 0x12, 0xEE, 0xFA, 0x7C, 0xE5, 0x65, 0xF9,
         0x03, 0x00, 0x0D, 0xEE, 0x50, 0xF0, 0x78, 0xF5,
         0x5E, 0x08, 0x6E, 0x2F, 0x0F, 0x45, 0xAE, 0x4E,
         0x32, 0x5B, 0xA0, 0x54, 0x90, 0x11, 0xAA, 0xE7,
         0x0C, 0xED, 0x80, 0xF3, 0x5E, 0x34, 0xB4, 0x65,
         0x98, 0x52, 0x02, 0x38, 0x07, 0x31, 0x35, 0x0A,
         0x29, 0xCF, 0x0D, 0xDD, 0xC1, 0xDB, 0x5E, 0x00,
         0x1D, 0xBF, 0x62, 0xB4, 0x81, 0xED, 0x01, 0x09,
         0x24, 0x37, 0x49, 0x55, 0x4E, 0x3C, 0x37, 0x1E,
         0xA5, 0xE8, 0xE6, 0xDE, 0x3D, 0xDC, 0xED, 0xAC,
         0x46, 0xC9, 0x27, 0xF0, 0x40, 0x04, 0x6A, 0x0D,
         0x92, 0x37, 0x52, 0x53, 0xB7, 0x35, 0x34, 0x31,
         0xBF, 0x26, 0x1F, 0x00, 0xE3, 0xF0, 0x7D, 0xD2,
         0x16, 0xD5, 0xC8, 0xBE, 0x5B, 0xD7, 0xBB, 0x04,
         0xD0, 0x09, 0xD1, 0x1B, 0x13, 0x2C, 0x80, 0x3C,
         0xE7, 0x33, 0xED, 0x25, 0x0F, 0xFD, 0x10, 0x01,
         0x0A, 0xF2, 0xE0, 0xFA, 0xED, 0x19, 0x69, 0x14,
         0x89, 0x17, 0x83, 0x26, 0xD5, 0x25, 0x6B, 0x1C,
         0x5A, 0xFB, 0xAE, 0xC6, 0xEF, 0xBE, 0x4C, 0xB3,
         0x2F, 0xC5, 0x07, 0xE7, 0x99, 0xF1, 0xA5, 0xE2,
         0xD4, 0xE0, 0xA1, 0xD9, 0x8F, 0x20, 0xED, 0x2B,
         0x87, 0x15, 0xF2, 0x2E, 0x94, 0x37, 0xA1, 0x2C,
         0xA5, 0x12, 0xF4, 0xF5, 0x39, 0xEB, 0x00, 0x16,
         0x5E, 0x30, 0x6D, 0x44, 0x1E, 0x45, 0xD4, 0x28,
         0xD1, 0xF3, 0x61, 0xD7, 0x66, 0xDF, 0xE2, 0xE4,
         0x16, 0x2D, 0x87, 0x34, 0x4F, 0x0E, 0xEA, 0x43,
         0xAE, 0x37, 0xC1, 0x18, 0xCD, 0xD9, 0x40, 0xB9,
         0x99, 0xB0, 0x82, 0xA2, 0xCC, 0xBF, 0x2A, 0xD0,
         0x5D, 0xEC, 0x00, 0x1D, 0xC3, 0x26, 0x76, 0x06,
         0x09, 0xF8, 0xE5, 0xE5, 0x5B, 0xFB, 0xAB, 0xEB,
         0x89, 0xDE, 0x97, 0xEE, 0x11, 0xF1, 0x52, 0xEF,
         0x58, 0xD5, 0x6A, 0xCD, 0x35, 0xF0, 0xD3, 0x30,
         0xD0, 0x35, 0xEA, 0x4D, 0x42, 0x4F, 0xCA, 0x2F,
         0x41, 0xFA, 0xF7, 0xCA, 0xE4, 0x9C, 0x81, 0xCB,
         0x20, 0xFA, 0x8B, 0x01, 0xCE, 0x03, 0x4E, 0xF3,
         0x39, 0x10, 0xAA, 0x67, 0x83, 0x5C, 0x9D, 0x3F,
         0x4B, 0x2A, 0xAB, 0xDF, 0x6D, 0x9E, 0xB3, 0x83,
         0x6E, 0x8D, 0x24, 0xBB, 0xB9, 0x18, 0x8B, 0x35,
         0xFF, 0x41, 0x6E, 0x52, 0xF1, 0x34, 0x88, 0xFB,
         0x63, 0xAD, 0x57, 0x90, 0xC5, 0x95, 0x5C, 0xAD,
         0x99, 0xC7, 0xE3, 0xF1, 0xA8, 0x07, 0x59, 0x22,
         0x62, 0x24, 0x9E, 0xF2, 0x39, 0xF8, 0x34, 0x09,
         0x40, 0x16, 0xDB, 0x25, 0x2E, 0x0E, 0xE2, 0xE0,
         0x19, 0xDF, 0xB0, 0xD8, 0x91, 0xA7, 0x2C, 0xD1,
         0x7F, 0x1E, 0xF4, 0x39, 0x3A, 0x51, 0x74, 0x3F,
         0x55, 0x55, 0xE6, 0x56, 0x5A, 0x5C, 0x0D, 0x1A,
         0x26, 0xE5, 0x0A, 0xC5, 0x99, 0xF2, 0x52, 0xFB,
         0xD7, 0x18, 0x5B, 0x26, 0x45, 0x0F, 0x52, 0x34,
         0x96, 0x30, 0x84, 0x2F, 0x95, 0x0F, 0xEB, 0xEB,
         0x8B, 0xCF, 0x01, 0xD0, 0x0E, 0xB5, 0x3D, 0xB3,
         0x75, 0xC9, 0xA7, 0xDF, 0x0D, 0x14, 0xDA, 0x0A,
         0x94, 0x1D, 0x61, 0xDD, 0x80, 0xB7, 0x7D, 0xC9,
         0x35, 0x03, 0x9B, 0x34, 0xBE, 0x25, 0x1F, 0x10,
         0xE6, 0x2D, 0x09, 0x3E, 0x54, 0x16, 0x77, 0xF6,
         0x3A, 0xFB, 0x9B, 0xEE, 0x3B, 0xC4, 0xC1, 0xD0,
         0xBF, 0x01, 0x32, 0x30, 0xE3, 0xFF, 0x23, 0xF7,
         0x73, 0x07, 0x4C, 0x00, 0xA9, 0x1B, 0x43, 0xFF,
         0xFC, 0xDA, 0xA9, 0xCA, 0xF0, 0xCA, 0xA1, 0xDB,
         0xE1, 0xCE, 0xFB, 0xC8, 0x5E, 0xF5, 0xA4, 0xFA,
         0xFD, 0x15, 0xF1, 0x22, 0x6E, 0x3B, 0x42, 0x37,
         0x72, 0x0C, 0x8C, 0xFD, 0xA1, 0x06, 0x9B, 0x0F,
         0x2F, 0x24, 0xF6, 0x5D, 0x62, 0x59, 0xBA, 0x51,
         0xEB, 0x58, 0xDF, 0x21, 0x74, 0x1A, 0xB1, 0xE7,
         0x36, 0xD4, 0x71, 0xBE, 0x77, 0xC0, 0xCB, 0xD5,
         0x8E, 0xDE, 0x76, 0x16, 0xBC, 0x46, 0x6B, 0x2F,
         0x61, 0x09, 0x96, 0xFA, 0x83, 0x18, 0x5E, 0x2D,
         0x75, 0x2D, 0xE5, 0x34, 0x70, 0x36, 0x4B, 0xEA,
         0xE1, 0xA2, 0xBA, 0xA9, 0xAF, 0xE9, 0x92, 0xE5,
         0x60, 0x19, 0x5E, 0x30, 0x25, 0x0F, 0x21, 0xF2,
         0xA3, 0xC9, 0xFA, 0xA9, 0xD0, 0x91, 0xC4, 0xC6,
         0x77, 0x01, 0x23, 0x26, 0x98, 0x2E, 0x0F, 0x1B,
         0x01, 0x23, 0x2A, 0x1D, 0x6E, 0xF2, 0xB7, 0xDC,
         0x8B, 0xC7, 0xA0, 0xC5, 0xA9, 0xAB, 0x98, 0xC7,
         0x4B, 0xFD, 0x70, 0x36, 0xF6, 0x25, 0x94, 0x0B,
         0xA0, 0xFE, 0x2A, 0x15, 0x94, 0x42, 0x27, 0x42,
         0x78, 0x21, 0x70, 0x01, 0x90, 0xF4, 0xAF, 0x11,
         0x9C, 0x2B, 0x9D, 0x2E, 0x14, 0x37, 0x65, 0x30,
         0xB4, 0x2C, 0xD6, 0x00, 0x00, 0xDA, 0x88, 0xF4,
         0x68, 0xEB, 0x00, 0xEF, 0x51, 0x05, 0xD8, 0x06,
         0x74, 0xE4, 0x81, 0xC2, 0x94, 0xCC, 0x06, 0xEE,
         0xD6, 0x08, 0x24, 0x13, 0x07, 0xDC, 0x23, 0xD2,
         0x2F, 0xE5, 0x7A, 0xF9, 0x0D, 0x0E, 0x17, 0x2E,
         0x76, 0x2D, 0x62, 0x1C, 0xC4, 0xF9, 0x83, 0xF7,
         0x95, 0x20, 0x33, 0x03, 0x41, 0xD0, 0x3F, 0xCB,
         0x6C, 0x11, 0xDC, 0x37, 0xF2, 0x08, 0x29, 0x00,
         0x1F, 0xD8, 0x89, 0xE6, 0x57, 0xE1, 0x94, 0xFC,
         0xFD, 0xDF, 0x99, 0xBF, 0xDB, 0xF2, 0x42, 0x26,
         0x45, 0x47, 0x84, 0x19, 0x4D, 0x13, 0xCA, 0x06,
         0xE1, 0xEA, 0x6D, 0xC9, 0x98, 0xBF, 0x49, 0xD2,
         0x7B, 0xAA, 0x6E, 0xC0, 0x8A, 0xD7, 0x49, 0x1D,
         0x5A, 0x0F, 0x82, 0x25, 0x5D, 0x35, 0x2A, 0x3F,
         0x7B, 0x3F, 0x41, 0x41, 0xC3, 0x46, 0xB3, 0x26,
         0xDE, 0xF5, 0xDE, 0xE6, 0x3E, 0xE3, 0x9B, 0x01,
         0xDB, 0xF4, 0xF1, 0xCA, 0xFF, 0xB1, 0x02, 0xCB,
         0xA5, 0xD0, 0x1B, 0xF6, 0xBE, 0xF3, 0x44, 0xFA,
         0x07, 0x19, 0xEB, 0x11, 0x13, 0x07, 0xFB, 0x2A,
         0xF1, 0x20, 0x3B, 0x04, 0x7B, 0xCA, 0xEE, 0xD8,
         0x30, 0x1C, 0x2A, 0x3B, 0x03, 0x4C, 0xBC, 0x27,
         0x8C, 0x23, 0xC1, 0x2C, 0x9D, 0x33, 0x77, 0x34,
         0xCF, 0x25, 0xFC, 0xFE, 0x27, 0xE8, 0x18, 0xE9,
         0x83, 0x14, 0x1D, 0x15, 0x49, 0x15, 0xDD, 0x2E,
         0xFD, 0x21, 0x27, 0xF3, 0x03, 0xB7, 0x2F, 0xAD,
         0x1E, 0xAD, 0x33, 0xB1, 0xFE, 0xAD, 0x42, 0xC6,
         0x34, 0x00, 0x27, 0x02, 0x1A, 0x13, 0xA7, 0x20,
         0x2B, 0x1F, 0x45, 0x19, 0x26, 0x04, 0x58, 0xE3,
         0x6A, 0xE4, 0xD1, 0xE4, 0xD0, 0x13, 0x59, 0x0F,
         0xCC, 0xF7, 0xA6, 0x0C, 0xB0, 0x22, 0x4A, 0x2B,
         0x0D, 0x0D, 0xF2, 0xFA, 0xED, 0x0B, 0x5B, 0x14,
         0x7F, 0x25, 0x62, 0x01, 0x7D, 0x0B, 0xFF, 0xF9,
         0x26, 0x1B, 0xBA, 0x19, 0x68, 0x18, 0x6D, 0x09,
         0x42, 0x09, 0xEA, 0x2D, 0x39, 0x0F, 0xE1, 0x06,
         0xC6, 0xEA, 0xDA, 0xBD, 0x6A, 0xA8, 0x71, 0xA2,
         0x9F, 0xB7, 0xB5, 0xEF, 0x66, 0x1E, 0xDB, 0x28,
         0xF6, 0x1B, 0xD2, 0x1E, 0x40, 0xFE, 0xB9, 0xE1,
         0x0F, 0xDE, 0xA8, 0xD3, 0xCF, 0xCF, 0x47, 0xFB,
         0xEF, 0x15, 0x15, 0x1E, 0x2B, 0xFE, 0x7F, 0x04,
         0x16, 0x09, 0x06, 0x11, 0x32, 0x1B, 0xD2, 0x17,
         0x10, 0x0E, 0x17, 0xE4, 0xAF, 0xCC, 0x0F, 0xDE,
         0x2C, 0xDB, 0xF8, 0xDF, 0xC6, 0xD7, 0xFD, 0xE5,
         0xEF, 0xF5, 0x65, 0x0C, 0x87, 0x3D, 0x94, 0x33,
         0x2D, 0x1D, 0x91, 0x19, 0x0C, 0x08, 0xA3, 0xFD,
         0x0D, 0x36, 0x5E, 0x41, 0x34, 0x34, 0x47, 0xF6,
         0x4B, 0xC2, 0xC1, 0xE8, 0xC3, 0x06, 0x3F, 0xEA,
         0x7A, 0xCB, 0xC7, 0xE1, 0xD6, 0xD2, 0x2F, 0xD0,
         0x0C, 0xDE, 0x3F, 0xFE, 0x73, 0x09, 0xB3, 0x21,
         0xD5, 0x19, 0x94, 0xE4, 0x75, 0xD9, 0x51, 0xF2,
         0x27, 0x45, 0x4E, 0x3C, 0x68, 0x11, 0xB4, 0xD4,
         0x25, 0xD7, 0x8E, 0xD9, 0xC6, 0xFE, 0x50, 0x3B,
         0x88, 0x45, 0x63, 0x3C, 0x0A, 0x3A, 0x79, 0x13,
         0x47, 0x1B, 0x3F, 0x2C, 0x45, 0x36, 0xE7, 0xED,
         0x3A, 0xAB, 0x57, 0xCA, 0x72, 0xFB, 0x1E, 0x17,
         0x7E, 0x05, 0x62, 0xE4, 0x41, 0xC2, 0x1C, 0xBD,
         0xA7, 0xA6, 0xA9, 0xAF, 0x29, 0xC0, 0xCB, 0xBC,
         0x53, 0xC0, 0x49, 0xBE, 0x55, 0xF3, 0xF0, 0x31,
         0xE1, 0x08, 0x7F, 0xFA, 0x60, 0xFE, 0x71, 0x08,
         0x4D, 0xE4, 0xA9, 0xDA, 0xC6, 0xF6, 0x2D, 0x25,
         0x53, 0x11, 0xFE, 0x26, 0xDC, 0x26, 0x79, 0x54,
         0x5C, 0x57, 0xB3, 0x3B, 0xAF, 0x24, 0x71, 0xEF,
         0xA9, 0xEA, 0xFA, 0xE3, 0x92, 0xE3, 0x84, 0x02,
         0x75, 0x2E, 0x66, 0x4D, 0x6C, 0x29, 0xEC, 0x09,
         0xE9, 0xEA, 0x9E, 0xC8, 0x55, 0xD8, 0xBB, 0xF4,
         0xD4, 0x0A, 0xED, 0x0D, 0x67, 0x09, 0xA8, 0xE1,
         0x3A, 0xD1, 0x5E, 0xC4, 0xBA, 0xEA, 0x47, 0x02,
         0x41, 0x01, 0xF7, 0xC4, 0xCD, 0xB7, 0xA7, 0xD3,
         0xF2, 0xE8, 0xBF, 0xDA, 0xF5, 0xDE, 0x12, 0x01,
         0xF8, 0xF5, 0x1E, 0x16, 0x96, 0x26, 0xC9, 0x15,
         0x82, 0x10, 0xE3, 0xF0, 0xCE, 0xCD, 0x56, 0xE9,
         0xE3, 0xF5, 0x05, 0xFB, 0x1C, 0xE1, 0xD6, 0xC9,
         0x31, 0xD8, 0xBF, 0x02, 0xD1, 0x11, 0x7A, 0xFD,
         0x37, 0x2B, 0xFB, 0x37, 0x2D, 0x1E, 0x0B, 0x13,
         0xD5, 0x18, 0x49, 0x25, 0xD4, 0x08, 0x69, 0xC0,
         0xD8, 0x99, 0x00, 0xAE, 0x54, 0xD8, 0xB5, 0xE3,
         0x27, 0xEB, 0xFB, 0x04, 0xFC, 0xFF, 0x8E, 0xFB,
         0x4B, 0xF4, 0x20, 0x27, 0x65, 0x26, 0xCC, 0x17,
         0xAB, 0xFD, 0x86, 0xF9, 0x86, 0x03, 0x4E, 0xDD,
         0x00, 0xDD, 0x6C, 0xDB, 0x9C, 0x08, 0x30, 0x30,
         0xF8, 0x2B, 0x2A, 0x1C, 0xD5, 0x05, 0x24, 0x00,
         0xCC, 0xEC, 0xB1, 0xF8, 0x1C, 0x22, 0xD9, 0x1C,
         0xDA, 0xF6, 0xB2, 0x06, 0xC7, 0x39, 0xBC, 0x4D,
         0xC4, 0x30, 0x13, 0x12, 0x87, 0xE9, 0xC8, 0xBA,
         0xF1, 0xA9, 0x41, 0xD1, 0xE9, 0xE4, 0x77, 0xB4,
         0xF5, 0xA1, 0x9E, 0xDD, 0x39, 0x03, 0x96, 0x02,
         0x47, 0xF7, 0x3A, 0x05, 0xB1, 0x37, 0x15, 0x25,
         0x37, 0x0F, 0xBA, 0xD9, 0xFF, 0xC7, 0xB3, 0xD0,
         0xCA, 0xC0, 0xF3, 0xD5, 0x5E, 0xCD, 0xA3, 0xEC,
         0xBF, 0x16, 0xCA, 0x29, 0x06, 0x1D, 0xBE, 0x22,
         0xB1, 0x11, 0xCA, 0xF9, 0x4D, 0xFD, 0x5A, 0x1C,
         0xD1, 0x4B, 0x78, 0x39, 0x7A, 0x24, 0xAB, 0xFA,
         0xA0, 0x08, 0x0E, 0x22, 0xEF, 0x28, 0xFA, 0x23,
         0xE5, 0x07, 0xAF, 0xE6, 0x8D, 0xD2, 0xAD, 0xD1,
         0x47, 0xDE, 0x15, 0x13, 0xE7, 0x0D, 0x8C, 0x0D,
         0x22, 0xFB, 0x6B, 0xE9, 0xC5, 0xFC, 0x17, 0xE9,
         0x34, 0xFB, 0x07, 0xE2, 0x44, 0xDE, 0x00, 0xEE,
         0x4B, 0xFB, 0x14, 0xF1, 0x70, 0xDA, 0x6D, 0xD6,
         0x1A, 0xE8, 0xD2, 0xFC, 0xA5, 0x19, 0xBC, 0x38,
         0x45, 0x4C, 0xD2, 0x39, 0xD9, 0x1F, 0x2A, 0x10,
         0xCB, 0x14, 0xD9, 0x0F, 0x17, 0xF5, 0xE5, 0xE1,
         0x5E, 0xC9, 0xFD, 0xD0, 0xCB, 0xC7, 0xBB, 0xBC,
         0xD7, 0xF2, 0xA2, 0x35, 0x49, 0x38, 0x6F, 0x2E,
         0x4A, 0x1C, 0xBA, 0x18, 0xEA, 0x11, 0xA8, 0x09,
         0xC7, 0xF2, 0xE0, 0xD8, 0x96, 0xB5, 0x9F, 0xC6,
         0x88, 0xD2, 0x15, 0xF6, 0xE2, 0xE5, 0x93, 0x01,
         0x6B, 0xFD, 0xA6, 0x0F, 0xC2, 0x12, 0xA0, 0x0C,
         0xD6, 0xFD, 0xBE, 0x13, 0xC3, 0x3B, 0xA0, 0x38,
         0x56, 0x1E, 0xCD, 0xFA, 0xB3, 0xF7, 0x84, 0x00,
         0x88, 0x1D, 0x52, 0x30, 0x57, 0x18, 0x2B, 0x0B,
         0x67, 0x05, 0xF5, 0xF7, 0xBF, 0x06, 0xFB, 0x14,
         0x11, 0x14, 0xCA, 0x05, 0x50, 0x07, 0x88, 0x0F,
         0xB0, 0xF2, 0x8B, 0xE7, 0x26, 0xF0, 0x29, 0xD2,
         0x40, 0xB3, 0x3F, 0xB8, 0x7A, 0xC4, 0x92, 0xD4,
         0x5A, 0xF5, 0xC1, 0xE7, 0xC2, 0xDC, 0x11, 0xD9,
         0x48, 0xE7, 0x64, 0xFB, 0xDC, 0x0D, 0xA0, 0xFC,
         0xF5, 0xFA, 0x8C, 0xE5, 0xF5, 0xD6, 0x9D, 0xF1,
         0x44, 0x06, 0xCE, 0x03, 0xD5, 0x01, 0xE3, 0x0C,
         0x39, 0x0A, 0xCD, 0x1E, 0xA6, 0x16, 0x9B, 0x0D,
         0x43, 0x06, 0xAD, 0x10, 0xD1, 0x14, 0x2F, 0x0A,
         0x47, 0xF8, 0x9E, 0xED, 0x49, 0xFA, 0xB7, 0x13,
         0xE6, 0x34, 0x3C, 0x45, 0xBF, 0x38, 0x82, 0x33,
         0x77, 0x2F, 0xAE, 0x12, 0x12, 0xE5, 0xED, 0xCB,
         0x05, 0xCE, 0xE4, 0x02, 0x53, 0x14, 0x54, 0xFF,
         0x97, 0xDA, 0x38, 0xD6, 0x68, 0xEF, 0x37, 0x08,
         0x08, 0x41, 0x70, 0x36, 0x87, 0x1D, 0x43, 0xF9,
         0xF6, 0x0B, 0x48, 0x10, 0x5C, 0xDF, 0xE3, 0xD2,
         0xA1, 0xD4, 0x35, 0xC8, 0x66, 0xB9, 0xB3, 0xDE,
         0x0A, 0x20, 0xD8, 0x34, 0x08, 0x4B, 0xB8, 0x61,
         0x1F, 0x4E, 0x0E, 0x29, 0x8C, 0xD9, 0xED, 0xAF,
         0x26, 0xB4, 0x28, 0xC8, 0xA1, 0xDA, 0x4C, 0x0B,
         0x8D, 0x0F, 0x02, 0x13, 0xA0, 0x15, 0x99, 0x28,
         0x09, 0x1A, 0x5C, 0xFA, 0xC5, 0xD7, 0xB1, 0xC8,
         0x5B, 0xCD, 0xB0, 0xC4, 0xE0, 0xBE, 0x4E, 0xBD,
         0x98, 0xD1, 0x30, 0xF7, 0xBD, 0x10, 0xCC, 0x2B,
         0x71, 0x21, 0xF0, 0x09, 0x76, 0xF4, 0x9A, 0xD4,
         0x65, 0xE0, 0x5E, 0xFC, 0x01, 0x32, 0x0B, 0x39,
         0x23, 0x24, 0xB7, 0x01, 0xEB, 0xE9, 0x82, 0x03,
         0x2B, 0x1D, 0x34, 0x18, 0xE4, 0x25, 0xD8, 0x17,
         0x06, 0x0D, 0x64, 0xE7, 0x01, 0xC9, 0x28, 0xE1,
         0x23, 0xFC, 0xF6, 0x31, 0x73, 0x18, 0x63, 0xFA,
         0x49, 0x09, 0xD6, 0x11, 0xBF, 0x1A, 0x50, 0x04,
         0x3F, 0x1C, 0x5B, 0x06, 0x51, 0x01, 0xB8, 0xCB,
         0xEC, 0xD1, 0x2B, 0xD3, 0xDF, 0xDC, 0x9D, 0xE3,
         0x56, 0xEF, 0x71, 0x06, 0x0A, 0x2A, 0x58, 0x09,
         0x33, 0xDA, 0x5F, 0xD2, 0xD2, 0x03, 0x77, 0x2B,
         0x82, 0x2C, 0x65, 0x18, 0xEE, 0xEB, 0x70, 0xE4,
         0x14, 0xDC, 0xF5, 0x1B, 0xFB, 0x33, 0x80, 0x25,
         0x49, 0xFD, 0x1E, 0xEF, 0x2D, 0xE6, 0x8C, 0x04,
         0xC8, 0x12, 0xEA, 0x0F, 0x1E, 0x02, 0x0E, 0xE1,
         0x28, 0xE7, 0x1B, 0xE9, 0xA3, 0xE9, 0x07, 0xFD,
         0x13, 0x1C, 0xBD, 0x31, 0x3F, 0x17, 0x82, 0x06,
         0x45, 0xFF, 0x5A, 0xE5, 0xFD, 0xB6, 0x5F, 0xAB,
         0xEE, 0xC2, 0x33, 0xF6, 0x62, 0x2B, 0x0D, 0x22,
         0x50, 0x0E, 0xB0, 0xED, 0xAA, 0xEB, 0x62, 0x2D,
         0xA8, 0x35, 0x23, 0x36, 0xE2, 0x15, 0x59, 0xF0,
         0x29, 0xCC, 0x6A, 0xB8, 0xD7, 0xCA, 0xF2, 0x07,
         0xC5, 0x23, 0xB4, 0x09, 0xEB, 0x07, 0xC8, 0x2E,
         0x6E, 0x36, 0xED, 0x22, 0x05, 0x1C, 0x0A, 0x2C,
         0x2C, 0x1B, 0x53, 0xFE, 0x11, 0xE4, 0xB5, 0xC3,
         0xB0, 0xC4, 0x1F, 0xD7, 0x95, 0x05, 0x8B, 0x2B,
         0x4D, 0x2A, 0x43, 0x2A, 0x91, 0x11, 0x29, 0xEF,
         0xCD, 0xC6, 0xF6, 0xC3, 0x55, 0xDB, 0x11, 0xE5,
         0x4E, 0xFE, 0xE8, 0xFB, 0xE2, 0xE8, 0x44, 0xF5,
         0x0D, 0xFF, 0x0D, 0x0E, 0x1D, 0x21, 0x6C, 0x34,
         0x74, 0x19, 0x23, 0xEC, 0x4C, 0xCC, 0x74, 0xBE,
         0x1A, 0xC5, 0x53, 0xE0, 0x77, 0x01, 0xCA, 0x1D,
         0x67, 0x24, 0x5C, 0x2C, 0x80, 0x2E, 0x16, 0x3B,
         0x13, 0x32, 0xAD, 0x1C, 0x8F, 0xF9, 0x8E, 0xD9,
         0x83, 0xC3, 0x2E, 0xC4, 0x39, 0xF3, 0x1F, 0x1C,
         0x83, 0x13, 0x34, 0x0F, 0x32, 0x0F, 0xF8, 0xEB,
         0xD8, 0xEF, 0x1B, 0x06, 0x0F, 0x1C, 0x78, 0xE4,
         0xE8, 0xBD, 0x3E, 0xE0, 0x59, 0x06, 0x1F, 0x0F,
         0x72, 0x04, 0x9E, 0xE2, 0x8B, 0xC8, 0x7C, 0xBD,
         0x4F, 0xC9, 0x8E, 0x12, 0x62, 0x39, 0xA1, 0x40,
         0x15, 0x2F, 0xC1, 0x20, 0xA3, 0x0B, 0x38, 0xF5,
         0x24, 0xEE, 0xE3, 0xE5, 0x94, 0xE0, 0xDE, 0xD2,
         0x3A, 0xED, 0x41, 0x10, 0xBF, 0x0F, 0x23, 0x0F,
         0xC4, 0x07, 0xD9, 0x0B, 0x3B, 0xF7, 0x6A, 0xF7,
         0xA5, 0xFA, 0x5F, 0x05, 0x50, 0xF6, 0x05, 0xE9,
         0x8F, 0xF7, 0x6D, 0x05, 0xFF, 0x12, 0xDF, 0x2C,
         0x2A, 0x28, 0xEB, 0x07, 0xC8, 0xF9, 0xB4, 0x0A,
         0xBD, 0x0D, 0x7C, 0x08, 0x77, 0x0B, 0x8A, 0x0C,
         0x66, 0xF7, 0x7B, 0xE5, 0x4B, 0xEA, 0x76, 0xDE,
         0x35, 0xF7, 0xDA, 0xEF, 0x32, 0xF6, 0x33, 0xFF,
         0x51, 0x1A, 0xEA, 0x1A, 0x8B, 0x09, 0x2A, 0x03,
         0x0A, 0x17, 0x44, 0xFF, 0x2C, 0xE3, 0x79, 0xE2,
         0xF9, 0xFB, 0xD2, 0x17, 0x42, 0x13, 0xBE, 0xEE,
         0x2E, 0xE4, 0xC8, 0xCA, 0x4C, 0xDB, 0x41, 0x0E,
         0x59, 0x35, 0xF5, 0x20, 0x12, 0x12, 0x4A, 0xF6,
         0x60, 0xE3, 0x3D, 0xCD, 0x75, 0xC6, 0x52, 0xD0,
         0x20, 0xDB, 0x8A, 0xD8, 0x31, 0xF2, 0x6B, 0x08,
         0x55, 0x11, 0x41, 0x10, 0x86, 0xF4, 0xF8, 0xF1,
         0x91, 0x06, 0x1B, 0x32, 0x78, 0x31, 0x1B, 0x22,
         0xC6, 0x0E, 0x49, 0xFB, 0x25, 0x05, 0x94, 0xFF,
         0x79, 0xE4, 0xB1, 0xC8, 0x04, 0xDB, 0xA7, 0xEE,
         0x41, 0xEE, 0x35, 0x04, 0xDF, 0x26, 0x2A, 0x3C,
         0x80, 0x37, 0x9D, 0x20, 0x58, 0x01, 0x89, 0xFC,
         0x31, 0xF1, 0xEA, 0xFC, 0x65, 0x0A, 0x74, 0x10,
         0x4D, 0xFA, 0xE4, 0xF1, 0xCC, 0xCE, 0xFF, 0xCD,
         0x3F, 0xE8, 0x1A, 0x0B, 0x81, 0x21, 0xD3, 0x2D,
         0x19, 0x1B, 0x4C, 0x04, 0x5E, 0xEA, 0x70, 0xF5,
         0x8A, 0xE6, 0xF1, 0xED, 0xC4, 0xF6, 0x15, 0x08,
         0x50, 0x0D, 0x59, 0x09, 0xB0, 0xFE, 0x85, 0xEF,
         0x85, 0xDF, 0x5A, 0xE8, 0x50, 0xF4, 0x33, 0x17,
         0x72, 0x1F, 0x6F, 0x25, 0x98, 0x23, 0x05, 0x18,
         0xDA, 0x02, 0x75, 0xE8, 0x62, 0xD1, 0x4D, 0xCD,
         0x3E, 0xD6, 0x2D, 0xF0, 0x7E, 0x00, 0x35, 0x05,
         0xEB, 0x0A, 0x5B, 0x13, 0x43, 0x10, 0x3E, 0x02,
         0x1D, 0x00, 0x7E, 0x0A, 0xF1, 0x04, 0x65, 0xFC,
         0xD9, 0x06, 0x11, 0x02, 0x35, 0xF6, 0xB6, 0xF2,
         0x15, 0xFF, 0xFF, 0x0E, 0x02, 0x08, 0x3F, 0x05,
         0x68, 0xFB, 0x5F, 0x05, 0x33, 0x11, 0xEF, 0x0C,
         0xC0, 0xF9, 0x02, 0xEF, 0x02, 0xE7, 0x4D, 0xDE,
         0xD7, 0xE6, 0x77, 0xFA, 0x0C, 0x13, 0xF7, 0x2C,
         0x89, 0x32, 0x3F, 0x12, 0x02, 0xF9, 0x35, 0xF4,
         0x1E, 0xFB, 0x4E, 0x00, 0x47, 0xF7, 0x45, 0xEF,
         0x15, 0xFD, 0xA7, 0xFC, 0x95, 0x01, 0xC3, 0x05,
         0x7B, 0x06, 0x08, 0x05, 0x7E, 0x16, 0x4D, 0x05,
         0xE4, 0x07, 0x29, 0x15, 0x7F, 0x17, 0x53, 0x14,
         0x83, 0xDC, 0xF3, 0xC2, 0x33, 0xBE, 0x81, 0xD1,
         0x12, 0xE6, 0x50, 0x15, 0x1F, 0x2F, 0xB6, 0x25,
         0xEC, 0x06, 0xEE, 0xEB, 0xC3, 0xE5, 0xCC, 0xF7,
         0xEB, 0xFD, 0x20, 0xF8, 0xCE, 0xE1, 0xD7, 0xE4,
         0xC8, 0xFE, 0x51, 0xFB, 0xA5, 0xFE, 0x23, 0x08,
         0xFA, 0x17, 0x8F, 0x19, 0x0A, 0x13, 0xD7, 0xEC,
         0x51, 0xD7, 0x89, 0xD7, 0xC2, 0xEC, 0x30, 0x19,
         0xBC, 0x3C, 0xCD, 0x3E, 0x12, 0x3D, 0xAB, 0x0C,
         0xAC, 0xE8, 0xDB, 0xDB, 0x8F, 0xE5, 0x47, 0xF4,
         0x8F, 0xF2, 0xF2, 0xE9, 0xEF, 0xE6, 0x0A, 0x04,
         0x82, 0x0D, 0x89, 0x02, 0x6B, 0xF1, 0x60, 0x0D,
         0x39, 0x24, 0x3F, 0x27, 0x6C, 0x1D, 0x49, 0x0D,
         0xE5, 0xF1, 0x6B, 0xE4, 0x0D, 0xE6, 0xF9, 0xF1,
         0xF2, 0xFD, 0x24, 0xF6, 0xA1, 0x01, 0x31, 0xFC,
         0xED, 0xFE, 0x54, 0x07, 0x0F, 0x0F, 0xB8, 0x0C,
         0xA6, 0x19, 0x2E, 0x1C, 0xCF, 0x0F, 0x80, 0xFD,
         0x64, 0xFB, 0xF4, 0xFD, 0x48, 0xFE, 0xA5, 0xF8,
         0xF3, 0x00, 0x15, 0x0E, 0xB3, 0xEC, 0x6B, 0xEB,
         0x4B, 0x0E, 0x3F, 0x11, 0x9D, 0x1B, 0x48, 0x25,
         0x55, 0x18, 0x17, 0x07, 0x36, 0xD4, 0xC2, 0xC1,
         0x25, 0xC9, 0x53, 0xE2, 0x08, 0x02, 0x3F, 0x1B,
         0x0E, 0x31, 0x51, 0x29, 0xAE, 0x1A, 0xC1, 0x0B,
         0x57, 0xD1, 0xB8, 0xDC, 0xD6, 0xEA, 0x1F, 0xE2,
         0x6F, 0xE5, 0x98, 0x03, 0x2E, 0x30, 0x0E, 0x46,
         0x77, 0x37, 0x02, 0x1E, 0xFB, 0xF3, 0x74, 0xE7,
         0x5C, 0xE5, 0x9E, 0xE2, 0xA8, 0xE6, 0xCC, 0xE7,
         0xB2, 0xFA, 0xA4, 0x13, 0x7C, 0x13, 0x29, 0x10,
         0x9F, 0x10, 0x44, 0x0C, 0xFD, 0x1E, 0xF4, 0x20,
         0x2D, 0x16, 0x68, 0x06, 0x52, 0xEE, 0x1F, 0xF2,
         0x3C, 0xEA, 0x2E, 0xED, 0x05, 0xF9, 0x2A, 0x05,
         0x52, 0x12, 0xBF, 0x1A, 0x4F, 0x2D, 0x4D, 0x2D,
         0x57, 0x15, 0x21, 0x00, 0x69, 0xFC, 0xCB, 0x09,
         0x7B, 0xFE, 0x23, 0xFA, 0xEA, 0xFB, 0x9F, 0xF9,
         0xA8, 0xF1, 0x7D, 0x00, 0x05, 0xF9, 0x4B, 0x1E,
         0x54, 0x22, 0xCD, 0x09, 0x87, 0xFC, 0xD1, 0x04,
         0x9D, 0x17, 0x84, 0x0D, 0x25, 0x06, 0x45, 0xF7,
         0x44, 0xF1, 0x0E, 0xF2, 0x48, 0xF9, 0xD1, 0x04,
         0xD6, 0x0C, 0xA4, 0x2A, 0xE9, 0x23, 0x7B, 0xF9,
         0xA3, 0xDD, 0xD3, 0xD9, 0x5C, 0xDC, 0x7A, 0xEB,
         0x01, 0xEE, 0x10, 0xF5, 0x3E, 0x14, 0x13, 0x19,
         0x11, 0x17, 0x2B, 0x1E, 0xA3, 0x0E, 0xF4, 0x08,
         0xA3, 0xF9, 0xAF, 0xFA, 0x72, 0x06, 0x7B, 0x03,
         0x89, 0xF2, 0xD1, 0xDA, 0xF0, 0xCD, 0xCB, 0xF5,
         0xE0, 0x20, 0x91, 0x35, 0x6B, 0x2E, 0x71, 0x27,
         0x53, 0x25, 0xF4, 0x18, 0x20, 0x06, 0x7D, 0xF5,
         0x72, 0xEF, 0x29, 0xF8, 0x7E, 0xF1, 0x55, 0xDD,
         0x22, 0xF0, 0x18, 0x10, 0x01, 0x2E, 0xEC, 0x32,
         0x16, 0x1D, 0x00, 0x0D, 0x46, 0xF9, 0x1A, 0xD4,
         0x63, 0xDB, 0x10, 0xFF, 0xE9, 0x05, 0x06, 0x0C,
         0x2D, 0x27, 0x48, 0x2C, 0x57, 0x11, 0x1B, 0xF1,
         0x92, 0xF3, 0xED, 0xFC, 0x27, 0x03, 0xA1, 0xFE,
         0x86, 0xF4, 0x1E, 0x02, 0x54, 0x10, 0x9F, 0xF9,
         0xC7, 0xEE, 0x1D, 0xEE, 0x32, 0xE9, 0x23, 0xEC,
         0xC7, 0xFE, 0x51, 0xF4, 0x91, 0xE9, 0x9B, 0xE0,
         0x1C, 0xDF, 0x4A, 0xEB, 0x33, 0xF2, 0xDC, 0xFE,
         0x70, 0x06, 0x12, 0xF7, 0x1D, 0xE6, 0xE7, 0xE0,
         0xE2, 0xEC, 0x36, 0xEC, 0xB7, 0xE5, 0x67, 0xF8,
         0xE9, 0x1E, 0xBD, 0x21, 0x24, 0x15, 0x95, 0x11,
         0x42, 0xF6, 0x9E, 0xE2, 0xFE, 0xD3, 0x47, 0xDE,
         0xAA, 0xF2, 0x21, 0x00, 0xD5, 0x06, 0x58, 0x10,
         0x2D, 0x24, 0x6F, 0x2D, 0x40, 0x27, 0x67, 0x22,
         0xB4, 0x17, 0x07, 0xFC, 0x25, 0xF2, 0x77, 0xE4,
         0x8B, 0xDF, 0xDE, 0xDE, 0x54, 0xF0, 0x13, 0xFD,
         0x27, 0xF4, 0x4B, 0xF5, 0x4F, 0xF2, 0x64, 0x00,
         0xC2, 0x04, 0xC4, 0xF6, 0x5D, 0xE8, 0x07, 0xE7,
         0x58, 0xE4, 0x91, 0xD7, 0xD6, 0xDD, 0x12, 0xE8,
         0x54, 0x0B, 0x17, 0x1B, 0x41, 0x03, 0x61, 0xF1,
         0x9F, 0xFD, 0xF3, 0xFE, 0xF9, 0xFD, 0x8C, 0xFC,
         0xA4, 0xF9, 0x9F, 0xFF, 0x1C, 0x04, 0xDA, 0x06,
         0xD8, 0xFB, 0x7D, 0xFA, 0xBD, 0xF9, 0x2A, 0xF3,
         0xAE, 0xEC, 0x99, 0xE7, 0x60, 0x09, 0xD7, 0x04,
         0x97, 0xE7, 0x38, 0xE2, 0x50, 0xE9, 0x1E, 0xE3,
         0xDD, 0xD1, 0x4B, 0xDB, 0x6A, 0x00, 0x73, 0x21,
         0x95, 0x26, 0xE9, 0x1F, 0xC4, 0x0C, 0x27, 0xFE,
         0xC1, 0xFC, 0x8E, 0xE3, 0x1F, 0xCB, 0xD9, 0xCF,
         0x45, 0xE3, 0x54, 0x01, 0xAA, 0x19, 0xBF, 0x1E,
         0x80, 0x10, 0xFF, 0xFF, 0x99, 0xFC, 0xBA, 0xF8,
         0x1A, 0x06, 0x1B, 0x19, 0xB5, 0x0D, 0xC3, 0xFF,
         0xC5, 0xF2, 0x57, 0xFE, 0x54, 0xEF, 0xFD, 0xD8,
         0x04, 0xDE, 0xFE, 0xF6, 0x37, 0x1B, 0xF0, 0x1C,
         0xAA, 0x04, 0xC8, 0xEC, 0x79, 0xEC, 0x48, 0x0F,
         0xDB, 0x0C, 0x75, 0xF9, 0x38, 0xE7, 0x17, 0xE4,
         0xF2, 0xED, 0x35, 0xEE, 0xE0, 0xF6, 0x4A, 0x12,
         0x3A, 0x1F, 0xE6, 0x12, 0xA3, 0x02, 0xB2, 0x05,
         0x5E, 0x12, 0x9C, 0x0A, 0x3F, 0xFE, 0xC9, 0xFA,
         0xC3, 0xF3, 0xEA, 0xE7, 0xAF, 0xE6, 0xBF, 0xF1,
         0xEC, 0x0D, 0x43, 0x11, 0xBD, 0x16, 0x2C, 0x22,
         0x84, 0x1F, 0x9B, 0x15, 0xA1, 0x0D, 0xD7, 0x03,
         0x8B, 0x02, 0x7E, 0xF2, 0x81, 0xF0, 0x74, 0xEB,
         0x5A, 0x08, 0xD5, 0x19, 0xA2, 0x0C, 0xA7, 0xFE,
         0x9C, 0xF4, 0x52, 0x09, 0x12, 0x06, 0xB0, 0xFE,
         0x11, 0xFF, 0xC6, 0xFA, 0xFA, 0xF9, 0xAA, 0x03,
         0xD7, 0xFB, 0x42, 0xF4, 0xDE, 0xEF, 0xEF, 0x03,
         0x82, 0x0B, 0xE9, 0x0C, 0xD8, 0x09, 0x33, 0xFB,
         0x3F, 0xED, 0xD5, 0xED, 0xAE, 0xF5, 0xFD, 0x09,
         0x90, 0x11, 0xDE, 0x14, 0xE9, 0x07, 0x6A, 0xFF,
         0x34, 0x01, 0x1F, 0x0D, 0x77, 0x12, 0xF7, 0x13,
         0x0D, 0x0B, 0x9F, 0x01, 0x50, 0xFD, 0x29, 0xF8,
         0x37, 0x04, 0xCF, 0x04, 0xB2, 0x13, 0x1D, 0x16,
         0x54, 0x08, 0xC6, 0xFE, 0xC0, 0x07, 0x15, 0x0A,
         0x26, 0x0D, 0x77, 0x01, 0x16, 0x0C, 0x7E, 0x04,
         0xD0, 0xE9, 0x59, 0xE3, 0x7B, 0xF1, 0x9C, 0x05,
         0x92, 0x07, 0x1F, 0x13, 0x66, 0x23, 0x1D, 0x1B,
         0x9C, 0x00, 0xFE, 0xF6, 0x41, 0xEA, 0xDC, 0xE5,
         0x6C, 0xEB, 0xCC, 0xF1, 0x7C, 0xED, 0x57, 0xF2,
         0xA9, 0x06, 0xFE, 0x1C, 0xF2, 0xFF, 0x05, 0xF4,
         0xF0, 0x04, 0xA3, 0x04, 0x52, 0x09, 0xD2, 0x14,
         0xE0, 0x1B, 0x24, 0x0E, 0x87, 0xF8, 0x81, 0xEE,
         0x50, 0xE9, 0x28, 0xE6, 0xF5, 0xE9, 0xF6, 0xF7,
         0x77, 0x03, 0xD1, 0x13, 0xE2, 0x1B, 0x04, 0x17,
         0xF0, 0xFD, 0x8C, 0xED, 0x8F, 0xDE, 0x55, 0xE5,
         0xED, 0xF1, 0x44, 0xFB, 0x23, 0x03, 0xE8, 0x08,
         0xDA, 0x09, 0x4C, 0xFA, 0xBA, 0xFB, 0xB2, 0x09,
         0x50, 0x00, 0x48, 0x08, 0x0F, 0x17, 0xA4, 0x1F,
         0x1D, 0xFE, 0xB7, 0xF0, 0x73, 0xEC, 0x51, 0xEA,
         0x8F, 0x09, 0x0E, 0x28, 0xF7, 0x22, 0x13, 0x11,
         0x99, 0xFC, 0x94, 0xEF, 0xC3, 0xE8, 0xE0, 0xE0,
         0x76, 0xED, 0x3A, 0xFB, 0xC0, 0x0C, 0xC6, 0x14,
         0x78, 0x0A, 0xFB, 0x01, 0xB6, 0x03, 0xE5, 0x05,
         0x70, 0xF8, 0x0F, 0x05, 0xA4, 0x13, 0x51, 0x15,
         0x69, 0x10, 0x04, 0x07, 0xEB, 0xFD, 0xFB, 0xFA,
         0x9D, 0x0F, 0x58, 0x0F, 0x0B, 0x04, 0xE5, 0x0C,
         0x2E, 0x07, 0x02, 0xF5, 0xE7, 0xE7, 0xC5, 0xF7,
         0x3A, 0xF3, 0x4D, 0xE6, 0x78, 0xEF, 0x58, 0xF9,
         0xF7, 0x00, 0x29, 0x02, 0x2F, 0x09, 0x62, 0x18,
         0x66, 0x08, 0x63, 0x05, 0xAE, 0x07, 0x42, 0xFE,
         0x8A, 0xFC, 0x9D, 0x00, 0xEB, 0x09, 0xA5, 0x13,
         0xBD, 0x08, 0x30, 0xFC, 0x83, 0xF7, 0xE0, 0xF0,
         0xDD, 0xF3, 0xF2, 0xFB, 0x76, 0x07, 0x8F, 0x04,
         0xFC, 0x04, 0xED, 0x00, 0xB1, 0x03, 0x69, 0x03,
         0x9A, 0x08, 0x21, 0xFC, 0xBB, 0xE5, 0xBA, 0xDE,
         0xE9, 0xEE, 0x9D, 0xFD, 0x44, 0x01, 0xF7, 0x05,
         0x68, 0x0C, 0x68, 0x08, 0x52, 0xFD, 0x00, 0xFF,
         0xE5, 0x05, 0x7D, 0xFE, 0x9F, 0xF4, 0x9C, 0xE9,
         0x35, 0xEF, 0x40, 0xF4, 0x49, 0xFC, 0x02, 0x00,
         0xDB, 0x02, 0x85, 0x01, 0x25, 0x03, 0x45, 0x0C,
         0xDD, 0x13, 0x63, 0x0F, 0x3E, 0x03, 0x05, 0xFF,
         0x5A, 0xFB, 0xC1, 0xFD, 0x76, 0x00, 0x18, 0x05,
         0xB4, 0x07, 0x22, 0x05, 0xB1, 0xFD, 0x81, 0xFC,
         0xAD, 0x03, 0x71, 0x0A, 0x15, 0x07, 0x00, 0x04,
         0x73, 0xF7, 0x18, 0x05, 0x37, 0x04, 0x67, 0xF0,
         0xEC, 0xE6, 0x40, 0xED, 0x67, 0xF0, 0xC0, 0xF2,
         0x2A, 0xFE, 0x87, 0x15, 0x9F, 0x18, 0xDD, 0x16,
         0xE4, 0x12, 0xB9, 0x0B, 0x47, 0xF7, 0x56, 0xEF,
         0x63, 0xF0, 0x23, 0xF2, 0x3A, 0xF9, 0xEE, 0xFB,
         0x6E, 0x00, 0x5C, 0x0C, 0x07, 0x19, 0xFC, 0x1C,
         0xFA, 0x11, 0x43, 0x06, 0xB1, 0xFA, 0xCA, 0xF4,
         0xBC, 0xF6, 0xA2, 0xF0, 0x05, 0xF1, 0xD3, 0xF9,
         0x85, 0xFE, 0x0F, 0xF4, 0xC2, 0xF3, 0xD0, 0x05,
         0x91, 0x1D, 0x44, 0x1B, 0x4B, 0x1F, 0xD5, 0x0D,
         0x32, 0xE5, 0x7D, 0xD4, 0xB2, 0xDC, 0xDE, 0xE8,
         0xBA, 0xF5, 0xA4, 0x06, 0xC0, 0x0E, 0xB0, 0x0E,
         0x80, 0x00, 0xB6, 0x00, 0xBD, 0xFF, 0xEF, 0xFB,
         0xDE, 0xFC, 0xDF, 0xFC, 0x59, 0xFF, 0xDE, 0xF7,
         0x8D, 0x00, 0x9C, 0x07, 0xAE, 0xF7, 0xE5, 0xFA,
         0xC6, 0xFD, 0xAA, 0x05, 0xFB, 0x0E, 0x19, 0x09,
         0x29, 0x01, 0x60, 0x03, 0x75, 0x0A, 0x81, 0x02,
         0x1C, 0xF3, 0x16, 0xF2, 0x8E, 0xF8, 0x53, 0xFC,
         0x68, 0x08, 0x70, 0x11, 0x08, 0x14, 0x4B, 0x18,
         0x40, 0x1C, 0x14, 0x16, 0x19, 0x0A, 0x12, 0xFC,
         0x52, 0xEC, 0x85, 0xE0, 0x27, 0xE6, 0xA9, 0xF7,
         0x41, 0x01, 0x68, 0xFE, 0xD9, 0x07, 0x45, 0x0C,
         0x08, 0x11, 0x43, 0x0F, 0xEA, 0x0B, 0x58, 0x07,
         0xD1, 0xF9, 0xB6, 0xF0, 0xCB, 0xEE, 0x7D, 0xF5,
         0x73, 0xFF, 0xA5, 0x04, 0x1D, 0x08, 0x08, 0x04,
         0x22, 0xF9, 0x7C, 0x02, 0xDB, 0x0E, 0x9B, 0x08,
         0x32, 0xFC, 0x98, 0xFB, 0x4B, 0xF5, 0x6D, 0xF8,
         0xC3, 0xFE, 0x4C, 0x07, 0x92, 0xFE, 0x6C, 0xFF,
         0xFA, 0xFF, 0xD2, 0x00, 0xC5, 0x03, 0xB2, 0x0C,
         0x4A, 0x0B, 0x91, 0x04, 0x71, 0xF4, 0x6B, 0xEE,
         0x84, 0xED, 0x23, 0xED, 0xD1, 0xEF, 0x66, 0xFC,
         0xBD, 0x06, 0x27, 0x09, 0x95, 0x09, 0x3A, 0x13,
         0x71, 0x16, 0xA9, 0x10, 0xD7, 0x00, 0x30, 0xF4,
         0xED, 0xF8, 0x8C, 0xFC, 0x71, 0xFC, 0xED, 0xFE,
         0xA6, 0x05, 0x8C, 0x07, 0xAF, 0x0F, 0x8A, 0x10,
         0x21, 0x13, 0x22, 0x08, 0xB2, 0x04, 0xC1, 0x05,
         0x3B, 0x06, 0xC8, 0x01, 0x69, 0xF7, 0xF8, 0xF6,
         0x66, 0xED, 0x90, 0xEC, 0xC3, 0xF0, 0x24, 0xF6,
         0xF0, 0xFC, 0xD7, 0x05, 0x12, 0x14, 0x54, 0x1E,
         0x46, 0x13, 0x48, 0xFF, 0xDD, 0x03, 0x94, 0x01,
         0x2C, 0xFE, 0x93, 0xF9, 0x46, 0xFD, 0x9B, 0xFB,
         0x4B, 0xF7, 0xF0, 0xF4, 0xD8, 0xF8, 0x2F, 0x05,
         0xEA, 0x10, 0x01, 0x0F, 0x65, 0xFE, 0x70, 0xF2,
         0xC0, 0xFA, 0xB3, 0x09, 0x37, 0x0A, 0x7F, 0x01,
         0x1B, 0xFD, 0xB2, 0xF8, 0xEB, 0xF5, 0x63, 0xF9,
         0x32, 0xFD, 0x82, 0xFD, 0x52, 0xFC, 0x8F, 0xF6,
         0x86, 0xF3, 0x91, 0xF3, 0x3D, 0xFD, 0x73, 0x0E,
         0x22, 0x0D, 0xE6, 0x08, 0x74, 0x06, 0x9E, 0x05,
         0x70, 0x04, 0x7A, 0x03, 0x9E, 0xFC, 0x4C, 0xF7,
         0x76, 0xF2, 0xD8, 0xF4, 0x7B, 0xF8, 0x6E, 0xFC,
         0x5E, 0x03, 0x0E, 0x06, 0x57, 0x04, 0xE6, 0xFF,
         0x84, 0x04, 0xB7, 0x06, 0x1C, 0x01, 0xC2, 0xF8,
         0x5C, 0xEF, 0x09, 0xEE, 0x68, 0xED, 0xC9, 0xF9,
         0xF6, 0x04, 0x56, 0x05, 0x88, 0xFB, 0xEB, 0xFA,
         0xBB, 0x01, 0x21, 0x03, 0x0E, 0x06, 0xB1, 0x05,
         0x3B, 0xFE, 0x15, 0xF5, 0x34, 0xF9, 0x07, 0xFD,
         0xEB, 0x01, 0x7A, 0x03, 0x26, 0x06, 0x98, 0x04,
         0xC8, 0x02, 0x4A, 0x05, 0xBE, 0x04, 0x02, 0x01,
         0x7A, 0xFC, 0x9D, 0x03, 0xA6, 0x04, 0x95, 0x04,
         0x1E, 0xFF, 0x8A, 0xF7, 0x26, 0xF7, 0x16, 0x00,
         0x67, 0x05, 0x50, 0xFF, 0x38, 0xF9, 0xDC, 0xF5,
         0x22, 0xFE, 0xE6, 0x08, 0xCE, 0x0B, 0x21, 0x04,
         0x39, 0xFA, 0xF9, 0xF1, 0x20, 0xF1, 0xF0, 0xFB,
         0xB7, 0x03, 0x7C, 0x0C, 0x8B, 0x06, 0xF5, 0x00,
         0x04, 0x09, 0xBE, 0x05, 0xE2, 0x0A, 0xCE, 0x0A,
         0x12, 0x06, 0xD9, 0x01, 0x07, 0xFB, 0x41, 0xF6,
         0x05, 0xF5, 0x1B, 0xF4, 0x20, 0xF4, 0x2B, 0xF4,
         0x06, 0xFD, 0x20, 0x01, 0xA1, 0x05, 0x27, 0x00,
         0x04, 0xFC, 0x50, 0x02, 0x40, 0x09, 0x69, 0x03,
         0xA9, 0xFB, 0x25, 0xF8, 0x7A, 0xFE, 0x4F, 0xF9,
         0xE9, 0xF3, 0x55, 0xF0, 0x13, 0xF8, 0x56, 0x03,
         0x43, 0x07, 0x15, 0x09, 0x07, 0x0A, 0x60, 0x09,
         0x2D, 0xFF, 0x17, 0x03, 0x5B, 0x06, 0x9A, 0x04,
         0x99, 0xFF, 0x05, 0xFC, 0x09, 0xFF, 0xF3, 0x04,
         0xD4, 0x00, 0x5B, 0xFC, 0x6A, 0xF2, 0x6E, 0xF2,
         0xA9, 0xFA, 0xB2, 0x01, 0x26, 0x04, 0x3A, 0x06,
         0x55, 0x06, 0x86, 0x0C, 0x7F, 0x0B, 0x97, 0x06,
         0x05, 0xFC, 0xE1, 0xFB, 0x5A, 0x02, 0x07, 0x04,
         0x13, 0x04, 0x2C, 0x09, 0x0E, 0x0B, 0xF3, 0xFF,
         0x9C, 0xFA, 0x99, 0xFD, 0x24, 0x02, 0x79, 0x02,
         0xA1, 0xFD, 0xCA, 0xFE, 0xC7, 0x05, 0x63, 0x03,
         0xE6, 0x00, 0x94, 0xF9, 0xA9, 0xF9, 0xB5, 0xFC,
         0x46, 0xFF, 0xF8, 0x01, 0xE9, 0x02, 0x6C, 0xFF,
         0x14, 0x03, 0x9E, 0x08, 0x60, 0x07, 0xEC, 0xFE,
         0xF5, 0xFB, 0xF3, 0x01, 0x38, 0xFB, 0x36, 0xF9,
         0x16, 0x07, 0x08, 0x0F, 0x47, 0x06, 0x3F, 0x00,
         0x27, 0xFD, 0x23, 0xF9, 0x3D, 0xFA, 0x94, 0xFA,
         0x6B, 0x00, 0x44, 0x03, 0xC2, 0x04, 0xF6, 0x03,
         0x65, 0x01, 0xB2, 0x01, 0x45, 0x07, 0x0D, 0x0D,
         0x13, 0x0A, 0x85, 0x04, 0x1D, 0xFB, 0x8A, 0xF3,
         0x39, 0xF5, 0x41, 0xFA, 0x35, 0xF9, 0xCB, 0xFF,
         0xE0, 0x08, 0xF5, 0xFD, 0xA1, 0xF5, 0x1A, 0xFE,
         0x14, 0x09, 0xAA, 0x07, 0x29, 0xFF, 0xA9, 0xFD,
         0xEE, 0x02, 0x49, 0xFD, 0x45, 0xFB, 0xEF, 0x00,
         0x92, 0x0B, 0xA8, 0x0E, 0xB2, 0x08, 0x44, 0x06,
         0x30, 0xFF, 0x2B, 0xFE, 0x12, 0xF9, 0x07, 0xF4,
         0x68, 0xF6, 0xC9, 0xF9, 0xD5, 0xFC, 0xFF, 0xFD,
         0x8F, 0x00, 0xDC, 0x07, 0x2E, 0x0D, 0x01, 0x0E,
         0x06, 0x04, 0xA7, 0xFE, 0xC7, 0xFF, 0x8A, 0xFB,
         0x57, 0xF8, 0x35, 0xFA, 0x15, 0xFC, 0x09, 0xFE,
         0xF8, 0xFE, 0x8C, 0x00, 0x81, 0x03, 0x4E, 0x04,
         0x85, 0x06, 0x5C, 0x0B, 0x8C, 0x0A, 0x95, 0x03,
         0x32, 0x01, 0x88, 0xFD, 0xEC, 0xFD, 0x3C, 0x03,
         0x5B, 0xFF, 0x54, 0xF9, 0xD6, 0xFD, 0x41, 0x07,
         0x04, 0x05, 0x46, 0x01, 0xE8, 0xFF, 0xE0, 0xFF,
         0x40, 0x02, 0x9D, 0xFF, 0xA6, 0xFD, 0x26, 0xFB,
         0x5C, 0xFB, 0xA6, 0xFA, 0x74, 0xFC, 0xDB, 0xFC,
         0xB6, 0xFE, 0x40, 0x00, 0x12, 0xFF, 0x20, 0xFB,
         0x48, 0xFD, 0xAE, 0x03, 0x6D, 0x04, 0x34, 0xFF,
         0xB1, 0xF9, 0x3E, 0xFC, 0x7A, 0xFE, 0x8D, 0xFB,
         0x52, 0xFD, 0xB7, 0x02, 0x17, 0x05, 0x77, 0x05,
         0x27, 0x07, 0x31, 0x02, 0x53, 0x01, 0x8E, 0x02,
         0x73, 0xFF, 0x67, 0x00, 0x5A, 0xFA, 0xE4, 0xF6,
         0xDD, 0xF9, 0x77, 0xFB, 0x2E, 0xFC, 0x56, 0xFB,
         0x23, 0xFD, 0xA0, 0x01, 0x6D, 0x02, 0x03, 0x01,
         0xE1, 0x03, 0x9F, 0x02, 0xD1, 0xF9, 0xB7, 0xFA,
         0x7F, 0x00, 0x33, 0xFF, 0x9B, 0xFC, 0xEA, 0xFC,
         0x72, 0x01, 0xB4, 0x05, 0x6E, 0x04, 0x21, 0x08,
         0x32, 0x0B, 0x22, 0x07, 0xB8, 0x02, 0xB6, 0x01,
         0x30, 0xFD, 0x03, 0xFC, 0x9D, 0xFE, 0x85, 0xFA,
         0x8B, 0xF7, 0xE9, 0xFE, 0xFA, 0x02, 0xB9, 0x02,
         0xCA, 0x01, 0xA9, 0x01, 0x23, 0xFF, 0x61, 0x00,
         0xB3, 0xFF, 0x3C, 0xFF, 0xF4, 0xFB, 0x3D, 0xFC,
         0xCE, 0x01, 0x7E, 0xFC, 0x90, 0xF7, 0xEE, 0xF9,
         0x12, 0x00, 0xFC, 0xFA, 0xC8, 0xFC, 0x1D, 0x01,
         0xD2, 0xFE, 0x7B, 0xFF, 0xED, 0xFD, 0x08, 0xF9,
         0xAE, 0xF7, 0xA5, 0xFD, 0x64, 0xFD, 0x51, 0xFD,
         0x1A, 0xFE, 0x87, 0xFE, 0xBE, 0x03, 0xF6, 0x04,
         0xEF, 0x04, 0xD1, 0x00, 0x8A, 0x01, 0x91, 0x03,
         0x48, 0xFF, 0x43, 0xFC, 0xB4, 0xFE, 0x1D, 0x00,
         0xA3, 0x00, 0x1E, 0x00, 0xC8, 0xFE, 0xDD, 0xFB,
         0x32, 0xFE, 0x2E, 0x02, 0x03, 0x05, 0x33, 0x02,
         0xB6, 0xFD, 0x4E, 0xFC, 0x65, 0xFE, 0x3E, 0x01,
         0x29, 0x00, 0x8C, 0x00, 0x92, 0x05, 0x13, 0x08,
         0xD9, 0x04, 0x4C, 0xFD, 0x4C, 0xFA, 0x8B, 0xF9,
         0xC8, 0xF5, 0xDF, 0xF3, 0x45, 0xF9, 0x1B, 0xFE,
         0xAA, 0x00, 0x5A, 0x02, 0xA6, 0x01, 0x13, 0x02,
         0x34, 0x03, 0x95, 0x06, 0xC3, 0x05, 0xEB, 0x00,
         0xFA, 0xFD, 0x2C, 0xFD, 0x56, 0xFC, 0x3C, 0xFD,
         0x87, 0x01, 0x9D, 0x03, 0x9B, 0x01, 0x90, 0x01,
         0xEA, 0x02, 0x55, 0xFF, 0x2E, 0x00, 0x93, 0x00,
         0x48, 0xFF, 0xEC, 0xFF, 0x31, 0xFE, 0xB9, 0xFF,
         0x28, 0x01, 0xEA, 0xFC, 0x9A, 0xF8, 0xD9, 0xFA,
         0x09, 0xFE, 0x78, 0xFF, 0xD2, 0x01, 0x17, 0x04,
         0x6F, 0x04, 0x6B, 0x04, 0x6B, 0x00, 0x3F, 0xFE,
         0xEF, 0xFD, 0x90, 0xF9, 0x8A, 0xF7, 0x9C, 0xFA,
         0xE3, 0xFC, 0x77, 0xFE, 0x78, 0x01, 0x98, 0x04,
         0xA8, 0x03, 0x19, 0x04, 0x44, 0x04, 0xAE, 0x04,
         0xFF, 0x06, 0x5B, 0x04, 0x9C, 0x00, 0x09, 0xFF,
         0xBA, 0xFE, 0xFB, 0xFE, 0xA8, 0xFF, 0xB8, 0xFD,
         0x76, 0xFE, 0x5E, 0x01, 0x4A, 0x06, 0x3A, 0x06,
         0x06, 0x03, 0xBD, 0xFF, 0x06, 0xFE, 0xF1, 0xFB,
         0x76, 0xFC, 0x49, 0xFC, 0x53, 0xFE, 0x2A, 0xFF,
         0x2E, 0xFD, 0x23, 0xFD, 0x1B, 0x00, 0x5B, 0x01,
         0x01, 0x03, 0xF2, 0x00, 0x37, 0xFD, 0x6C, 0xFE,
         0x67, 0x02, 0xDB, 0xFF, 0x5C, 0xFF, 0x64, 0x00,
         0x3C, 0x01, 0x4C, 0x02, 0x22, 0x02, 0x0C, 0x01,
         0x04, 0x02, 0xCF, 0x02, 0x06, 0x01, 0x47, 0x00,
         0x57, 0xFE, 0xA6, 0xFF, 0x0F, 0x00, 0xE8, 0xFF,
         0x29, 0x01, 0x43, 0x01, 0x66, 0x01, 0x1B, 0x03,
         0x88, 0x01, 0x9C, 0xFD, 0xAC, 0xFB, 0x25, 0xFE,
         0xA8, 0xFE, 0x0C, 0xFF, 0x84, 0x01, 0x11, 0x01,
         0x23, 0xFE, 0xCC, 0xFD, 0xD6, 0xFD, 0x01, 0xFF,
         0xD7, 0x00, 0x7B, 0x02, 0x5F, 0x03, 0x94, 0x02,
         0xCA, 0x01, 0x82, 0x00, 0x28, 0xFF, 0xFF, 0xFD,
         0x82, 0xFD, 0x60, 0xFD, 0x55, 0xFE, 0xE2, 0xFF,
         0xA7, 0x00, 0xF5, 0x00, 0xCE, 0x00, 0x0F, 0x04,
         0xDF, 0x03, 0x75, 0x03, 0xC3, 0x01, 0x71, 0x01,
         0x15, 0x00, 0x9B, 0xFE, 0x24, 0xFE, 0x9B, 0xFE,
         0x88, 0x02, 0xBF, 0x03, 0x92, 0x02, 0xD6, 0x00,
         0x98, 0x01, 0x2F, 0x01, 0xB0, 0xFF, 0x89, 0xFF,
         0x3B, 0x01, 0xB9, 0x01, 0x72, 0x00, 0x28, 0xFE,
         0xC2, 0xFB, 0x6A, 0xFC, 0xEB, 0xFE, 0xAF, 0xFF,
         0xBE, 0xFF, 0xB4, 0x00, 0xF4, 0x00, 0xC2, 0xFF,
         0x66, 0xFE, 0x12, 0x00, 0x77, 0x00, 0x79, 0x00,
         0xDD, 0xFF, 0x7B, 0xFF, 0x10, 0xFF, 0xBB, 0xFE,
         0x14, 0xFF, 0xD3, 0xFF, 0x21, 0x01, 0x60, 0x00,
         0xD1, 0x00, 0x7C, 0x02, 0x59, 0x03, 0xFD, 0x00,
         0xB3, 0x00, 0x25, 0x03, 0x99, 0x01, 0x0F, 0xFF,
         0x16, 0xFE, 0x85, 0x00, 0x67, 0x00, 0x11, 0x00,
         0x9A, 0xFF, 0x8B, 0xFF, 0xDA, 0xFF, 0xE1, 0x00,
         0x92, 0x00, 0x3D, 0xFF, 0x04, 0xFF, 0xE5, 0xFF,
         0x72, 0x01, 0x11, 0x01, 0x5B, 0x01, 0x42, 0x01,
         0x4D, 0x00, 0x08, 0x00, 0xD4, 0xFF, 0x31, 0x00,
         0xBB, 0x00, 0x92, 0x00, 0xC8, 0xFF, 0xFB, 0xFF,
         0xDA, 0xFE, 0x76, 0xFD, 0x78, 0xFE, 0x6A, 0x00,
         0xF6, 0x00, 0xC4, 0x00, 0xED, 0x01, 0x0C, 0x01,
         0xE4, 0xFF, 0x08, 0xFF, 0x7A, 0xFF, 0x0E, 0x01,
         0xB4, 0x00, 0xA3, 0x00, 0x03, 0x01, 0x46, 0x01,
         0x04, 0x00, 0x71, 0xFE, 0x32, 0xFE, 0x83, 0xFD,
         0x61, 0xFE, 0x48, 0x00, 0x69, 0x00, 0xE3, 0xFF,
         0xAB, 0x00, 0xA0, 0xFF, 0x79, 0xFF, 0xEB, 0x00,
         0xE7, 0x00, 0x0B, 0x00, 0x3F, 0x00, 0x4B, 0x00,
         0xCC, 0xFF, 0xC9, 0xFF, 0xAF, 0x00, 0x41, 0x01,
         0x19, 0x01, 0x3C, 0x00, 0x61, 0xFF, 0x3C, 0xFF,
         0x5E, 0x00, 0x46, 0x00, 0xAD, 0xFF, 0xFA, 0xFE,
         0xBD, 0xFF, 0xED, 0xFF, 0xF7, 0xFF, 0x67, 0xFF,
         0x90, 0x00, 0x7E, 0x01, 0x88, 0x01, 0x1E, 0x01,
         0x54, 0x00, 0xF1, 0xFE, 0x16, 0xFF, 0xBD, 0xFF,
         0x9D, 0xFF, 0xDC, 0xFF, 0x87, 0x00, 0x67, 0x00,
         0x4B, 0xFF, 0x4B, 0xFF, 0x16, 0x00, 0xAF, 0xFF,
         0x58, 0x00, 0xCD, 0x00, 0xF3, 0x00, 0xC2, 0x00,
         0x7B, 0x00, 0xF7, 0xFF, 0xB2, 0xFF, 0x60, 0xFF,
         0xA6, 0xFF, 0x82, 0x00, 0xF2, 0x00, 0x5D, 0x00,
         0x7F, 0xFF, 0x92, 0xFF, 0xD5, 0xFF, 0xDC, 0xFF,
         0x11, 0x00, 0xA8, 0x00, 0x05, 0x01, 0xFE, 0xFF,
         0x4C, 0xFF, 0x19, 0xFF, 0x36, 0xFF, 0xCF, 0xFF,
         0xB9, 0xFF, 0xE2, 0xFF, 0x8B, 0xFF, 0x47, 0xFF,
         0xA2, 0xFF, 0x31, 0x00, 0xCC, 0x00, 0x8D, 0x01,
         0x34, 0x01, 0xB9, 0xFF, 0x40, 0xFF, 0xDC, 0xFF,
         0xD6, 0xFF, 0x30, 0xFF, 0x92, 0xFF, 0xFC, 0xFF,
         0xDE, 0xFF, 0xEE, 0xFF, 0x15, 0x00, 0x7C, 0x00,
         0x96, 0x00, 0xBF, 0x00, 0x8E, 0x00, 0x4A, 0x00,
         0xED, 0xFF, 0x23, 0x00, 0x36, 0x00, 0x15, 0x00,
         0x28, 0x00, 0x47, 0x00, 0xF2, 0xFF, 0xDA, 0xFF,
         0x61, 0x00, 0x4C, 0x00, 0xE8, 0xFF, 0xED, 0xFF,
         0xF5, 0xFF, 0x9B, 0xFF, 0xAC, 0xFF, 0xCD, 0xFF,
         0xA5, 0xFF, 0x6E, 0xFF, 0x98, 0xFF, 0x16, 0x00,
         0xC0, 0x00, 0x96, 0x00, 0x31, 0x00, 0x06, 0x00,
         0x50, 0x00, 0x4D, 0x00, 0xC4, 0xFF, 0xE0, 0xFF,
         0x1F, 0x00, 0xFB, 0xFF, 0x9F, 0xFF, 0xAE, 0xFF,
         0xC5, 0xFF, 0x0E, 0x00, 0xF4, 0xFF, 0xEA, 0xFF,
         0x4E, 0x00, 0x60, 0x00, 0xF5, 0xFF, 0xC1, 0xFF,
         0xAA, 0xFF, 0x61, 0xFF, 0x88, 0xFF, 0xD0, 0xFF,
         0xFF, 0xFF, 0x20, 0x00, 0x1B, 0x00, 0xF9, 0xFF,
         0xC2, 0xFF, 0x4B, 0x00, 0xF3, 0xFF, 0xBF, 0xFF,
         0x87, 0xFF, 0x17, 0x00, 0x10, 0x00, 0x02, 0x00,
         0xF0, 0xFF, 0xE4, 0xFF, 0xF7, 0xFF, 0x16, 0x00,
         0x44, 0x00, 0x4A, 0x00, 0x7D, 0x00, 0x2D, 0x00,
         0xC5, 0xFF, 0xD3, 0xFF, 0x14, 0x00, 0x40, 0x00,
         0x4D, 0x00, 0x4D, 0x00, 0x2E, 0x00, 0x43, 0x00,
         0x5E, 0x00, 0x7D, 0x00, 0x75, 0x00, 0x54, 0x00,
         0x05, 0x00, 0xCE, 0xFF, 0xCF, 0xFF, 0xB6, 0xFF,
         0xD6, 0xFF, 0xDB, 0xFF, 0xC9, 0xFF, 0x96, 0xFF,
         0x81, 0xFF, 0xB0, 0xFF, 0xFB, 0xFF, 0x4A, 0x00,
         0x11, 0x00, 0xC7, 0xFF, 0xF4, 0xFF, 0xDD, 0xFF,
         0xBC, 0xFF, 0xBF, 0xFF, 0xCB, 0xFF, 0xBF, 0xFF,
         0xF3, 0xFF, 0x4B, 0x00, 0x49, 0x00, 0x2D, 0x00,
         0x00, 0x00, 0xCC, 0xFF, 0xD8, 0xFF, 0x16, 0x00,
         0x22, 0x00, 0x19, 0x00, 0x38, 0x00, 0x2A, 0x00,
         0x26, 0x00, 0x07, 0x00, 0xFC, 0xFF, 0x1E, 0x00,
         0x3D, 0x00, 0x19, 0x00, 0xE8, 0xFF, 0xDE, 0xFF,
         0xD5, 0xFF, 0xC0, 0xFF, 0xA1, 0xFF, 0xB7, 0xFF,
         0xF6, 0xFF, 0x24, 0x00, 0x11, 0x00, 0xDA, 0xFF,
         0xC8, 0xFF, 0xE0, 0xFF, 0xF4, 0xFF, 0xE4, 0xFF,
         0xF8, 0xFF, 0xEF, 0xFF, 0xE7, 0xFF, 0xBE, 0xFF,
         0xB9, 0xFF, 0xCB, 0xFF,
     };

#define  UFOHIT_MIDI 1690

__align(2)
     const U8 UfoHit_midi[] = 
     {
         0x52, 0x49, 0x46, 0x46, 0x92, 0x06, 0x00, 0x00, 0x57, 0x41, 0x56, 0x45, 0x66, 0x6D, 0x74, 0x20,
         0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x11, 0x2B, 0x00, 0x00, 0x11, 0x2B, 0x00, 0x00,
         0x01, 0x00, 0x08, 0x00, 0x64, 0x61, 0x74, 0x61, 0x6E, 0x06, 0x00, 0x00, 0x77, 0xD7, 0x77, 0x77,
         0x0E, 0x08, 0x3F, 0xB7, 0x08, 0x17, 0x8C, 0x08, 0x08, 0x08, 0x08, 0x88, 0x80, 0x80, 0x80, 0x80,
         0x80, 0x08, 0x00, 0x00, 0x08, 0x11, 0x98, 0xA9, 0x8A, 0x32, 0x13, 0x28, 0x14, 0xFB, 0x9E, 0xA9,
         0x89, 0x38, 0x46, 0x12, 0x21, 0x82, 0xA9, 0xBB, 0xBD, 0x9B, 0xBB, 0x0A, 0x02, 0x00, 0x8A, 0x57,
         0x32, 0x27, 0x11, 0x10, 0xC9, 0xBB, 0xCD, 0xBB, 0x9B, 0x00, 0x74, 0x14, 0x01, 0x22, 0xA2, 0xBA,
         0xA9, 0xCF, 0x99, 0x10, 0x01, 0x41, 0x25, 0x90, 0x00, 0xC8, 0xAC, 0x08, 0x81, 0x10, 0x41, 0x26,
         0xA8, 0x8A, 0xB8, 0xBB, 0xCD, 0xCB, 0x9B, 0x31, 0x55, 0x45, 0x22, 0x22, 0x80, 0xCC, 0xBB, 0xCB,
         0xBB, 0x9B, 0x08, 0x43, 0x34, 0x63, 0x34, 0x33, 0x82, 0xDB, 0xCB, 0xDB, 0xAA, 0x00, 0x11, 0x21,
         0x44, 0x13, 0x90, 0xBB, 0xAD, 0x89, 0x11, 0x22, 0x44, 0x23, 0x01, 0xA9, 0xDB, 0xAB, 0x9A, 0x98,
         0xCE, 0xBC, 0x9A, 0x30, 0x67, 0x24, 0x13, 0x90, 0xC9, 0xCC, 0xAB, 0x9A, 0x18, 0x41, 0x43, 0x22,
         0x33, 0x32, 0x23, 0xB0, 0xDE, 0xBC, 0xAC, 0x9A, 0x19, 0x63, 0x34, 0x43, 0x22, 0xA8, 0xCD, 0xBC,
         0xAB, 0x89, 0x21, 0x35, 0x33, 0x23, 0x01, 0xB8, 0xDC, 0xBB, 0xAA, 0x18, 0x43, 0x44, 0x22, 0x22,
         0x22, 0x02, 0xDA, 0xAC, 0xBB, 0xBD, 0xAA, 0xA9, 0x99, 0x0A, 0x73, 0x43, 0x24, 0x23, 0x11, 0xB9,
         0xCD, 0xBC, 0xAA, 0x18, 0x65, 0x43, 0x11, 0x80, 0xB9, 0xDC, 0xBC, 0xAB, 0x08, 0x48, 0x44, 0x43,
         0x23, 0x01, 0x80, 0xA0, 0xCE, 0xBC, 0xBA, 0x80, 0x08, 0x60, 0x34, 0x33, 0x02, 0x08, 0xC0, 0xDC,
         0xBA, 0xAB, 0x08, 0x31, 0x34, 0x34, 0x23, 0x12, 0x98, 0xBA, 0xCE, 0xBC, 0x9B, 0x08, 0x31, 0x44,
         0x43, 0x12, 0x00, 0x98, 0xAB, 0xBC, 0xBB, 0x09, 0x11, 0x90, 0x10, 0x42, 0x43, 0x33, 0x36, 0x14,
         0xA0, 0xBC, 0xBC, 0xBA, 0xAA, 0x09, 0x54, 0x33, 0x90, 0xEC, 0xCB, 0x8A, 0x30, 0x44, 0x33, 0x33,
         0x81, 0xCA, 0xBB, 0x9B, 0x09, 0x62, 0x24, 0x80, 0x9A, 0xBA, 0xCD, 0xAB, 0x19, 0x22, 0x23, 0x33,
         0x12, 0xDA, 0xBF, 0x8A, 0x42, 0x53, 0x53, 0x33, 0x02, 0xA8, 0xCD, 0xCC, 0xBA, 0x9B, 0x09, 0x41,
         0x34, 0x35, 0x43, 0x13, 0x91, 0xDA, 0xCC, 0xAB, 0xBB, 0x9B, 0x18, 0x53, 0x35, 0x35, 0x23, 0x12,
         0xA9, 0xCD, 0xCB, 0xAB, 0x9B, 0x18, 0x53, 0x34, 0x34, 0x12, 0x80, 0xCA, 0xBC, 0xAD, 0xAA, 0x09,
         0x42, 0x44, 0x33, 0x13, 0x81, 0xCA, 0xBD, 0xAC, 0x9B, 0x08, 0x32, 0x44, 0x33, 0x23, 0x81, 0xBA,
         0xEC, 0xDB, 0xAB, 0x99, 0x21, 0x63, 0x34, 0x33, 0x12, 0x90, 0xCB, 0xCC, 0xBA, 0xBB, 0x9A, 0x20,
         0x63, 0x43, 0x23, 0x23, 0x02, 0xA0, 0xCB, 0xCC, 0xBB, 0xBB, 0xAA, 0x9B, 0x10, 0x73, 0x34, 0x44,
         0x32, 0x12, 0x80, 0xDB, 0xBC, 0xCB, 0xAA, 0x99, 0x28, 0x43, 0x35, 0x23, 0x11, 0x80, 0xA8, 0x98,
         0x08, 0x98, 0xFA, 0xDC, 0xAB, 0xAB, 0x09, 0x42, 0x36, 0x35, 0x22, 0x81, 0xA8, 0xCB, 0xAA, 0xA9,
         0xAA, 0x99, 0x88, 0x00, 0xB9, 0xBC, 0xCB, 0x09, 0x74, 0x44, 0x44, 0x33, 0x22, 0xA8, 0xDC, 0xBC,
         0xBC, 0xBB, 0x9A, 0x30, 0x45, 0x34, 0x24, 0x22, 0x80, 0xA9, 0xCC, 0xBB, 0xAA, 0x09, 0x21, 0x34,
         0x24, 0x11, 0x98, 0xCB, 0xCB, 0x9A, 0x09, 0x32, 0x45, 0x43, 0x12, 0x90, 0xDB, 0xBC, 0xBC, 0x9A,
         0x10, 0x44, 0x34, 0x32, 0x11, 0x90, 0xCB, 0xCC, 0xCB, 0xAA, 0x89, 0x41, 0x63, 0x33, 0x24, 0x12,
         0x90, 0xCA, 0xBC, 0xBC, 0xBB, 0xAB, 0x19, 0x41, 0x54, 0x33, 0x24, 0x12, 0x80, 0xAA, 0xBC, 0xDB,
         0xBA, 0x9A, 0x89, 0x00, 0x30, 0x53, 0x53, 0x53, 0x33, 0x22, 0x81, 0xBA, 0xCE, 0xCB, 0xAC, 0x9B,
         0x89, 0x21, 0x53, 0x23, 0x33, 0x42, 0x32, 0x33, 0x22, 0xB8, 0xDF, 0xDB, 0xBB, 0xBB, 0x9A, 0x31,
         0x47, 0x43, 0x32, 0x01, 0xA9, 0xBC, 0xBD, 0xBA, 0x09, 0x31, 0x45, 0x33, 0x02, 0x98, 0xBC, 0xCC,
         0xAB, 0x88, 0x41, 0x53, 0x23, 0x12, 0x80, 0xCA, 0xCC, 0xAB, 0x8A, 0x20, 0x34, 0x44, 0x23, 0x81,
         0xB9, 0xCC, 0xBB, 0xCB, 0x89, 0x32, 0x35, 0x25, 0x22, 0x80, 0xBA, 0xBD, 0xAA, 0x08, 0x52, 0x43,
         0x23, 0x81, 0xEB, 0xDC, 0xBB, 0x9C, 0x89, 0x32, 0x45, 0x24, 0x33, 0x12, 0x98, 0xCB, 0xCC, 0xBB,
         0xAB, 0x09, 0x30, 0x45, 0x33, 0x23, 0x01, 0xA8, 0xBC, 0xBC, 0xAB, 0x8A, 0x20, 0x53, 0x43, 0x13,
         0x11, 0x98, 0xDB, 0xBD, 0xAA, 0x99, 0x10, 0x42, 0x35, 0x34, 0x23, 0xA8, 0xCD, 0xBD, 0xAC, 0x8A,
         0x30, 0x45, 0x34, 0x24, 0x02, 0xA0, 0xDB, 0xCC, 0xAB, 0x9B, 0x09, 0x31, 0x44, 0x44, 0x32, 0x12,
         0x91, 0xC9, 0xCB, 0xBC, 0xBB, 0x9B, 0x19, 0x53, 0x35, 0x25, 0x13, 0x80, 0xBA, 0xCD, 0xBB, 0xAA,
         0x08, 0x53, 0x44, 0x23, 0x12, 0x98, 0xCB, 0xBD, 0xBB, 0x9B, 0x08, 0x53, 0x34, 0x43, 0x22, 0x80,
         0xA9, 0xCA, 0xAA, 0xAA, 0x09, 0x20, 0x02, 0x81, 0x98, 0xBB, 0xCD, 0xAC, 0x19, 0x41, 0x45, 0x34,
         0x23, 0x82, 0xA8, 0xCC, 0xAA, 0xA9, 0x08, 0x11, 0x02, 0xD9, 0xDD, 0xBC, 0xAB, 0x89, 0x53, 0x45,
         0x43, 0x32, 0x21, 0x98, 0xDA, 0xBC, 0xBB, 0xAB, 0x09, 0x42, 0x53, 0x33, 0x03, 0xA0, 0xCC, 0xCB,
         0xAA, 0x09, 0x42, 0x44, 0x34, 0x22, 0x01, 0xB9, 0xCD, 0xBC, 0xBB, 0xAA, 0x10, 0x42, 0x35, 0x34,
         0x24, 0x12, 0x98, 0xEB, 0xCC, 0xBA, 0xAB, 0x09, 0x42, 0x45, 0x24, 0x23, 0x02, 0xA8, 0xDC, 0xCB,
         0xAB, 0x9A, 0x10, 0x42, 0x35, 0x33, 0x22, 0x80, 0xCA, 0xBC, 0xBC, 0xBA, 0x8A, 0x20, 0x63, 0x43,
         0x33, 0x33, 0x80, 0xCA, 0xBD, 0xAC, 0xAB, 0x89, 0x20, 0x44, 0x53, 0x22, 0x02, 0xA8, 0xBC, 0xBD,
         0xAC, 0x8A, 0x28, 0x52, 0x43, 0x43, 0x11, 0x81, 0xA9, 0xCB, 0xBB, 0xBB, 0x99, 0x00, 0x33, 0x44,
         0x22, 0x81, 0x98, 0xBB, 0xCB, 0x89, 0x52, 0x44, 0x33, 0x13, 0x91, 0xCC, 0xCC, 0xBC, 0x9C, 0x89,
         0x21, 0x33, 0x33, 0x22, 0x43, 0x23, 0x23, 0x23, 0x00, 0xDB, 0xEF, 0xBB, 0xBC, 0x89, 0x20, 0x54,
         0x34, 0x24, 0x12, 0x98, 0xDA, 0xBC, 0xBC, 0xAB, 0x89, 0x52, 0x53, 0x33, 0x23, 0x12, 0x90, 0xCC,
         0xBC, 0xAC, 0xAA, 0x08, 0x21, 0x53, 0x34, 0x33, 0x12, 0x90, 0xCC, 0xCD, 0xBB, 0xAB, 0x89, 0x32,
         0x47, 0x43, 0x33, 0x12, 0xA8, 0xDC, 0xDB, 0xBA, 0xA9, 0x08, 0x42, 0x44, 0x23, 0x23, 0x00, 0xB9,
         0xDB, 0xCB, 0xAB, 0x89, 0x10, 0x33, 0x24, 0x13, 0x82, 0xB8, 0xDB, 0xAA, 0x89, 0x31, 0x34, 0x35,
         0x23, 0x01, 0xB9, 0xBC, 0xBC, 0xBB, 0xBA, 0xBB, 0xAC, 0xBA, 0xCA, 0x0B, 0x74, 0x45, 0x53, 0x22,
         0x12, 0x81, 0xB9, 0xCE, 0xCB, 0xAB, 0x89, 0x28, 0x42, 0x34, 0x34, 0x13, 0x90, 0xCB, 0xBD, 0xCB,
         0x9A, 0x18, 0x43, 0x44, 0x24, 0x12, 0x01, 0xB9, 0xBC, 0xCD, 0xBA, 0xAA, 0x08, 0x31, 0x55, 0x43,
         0x32, 0x02, 0xA8, 0xDC, 0xDB, 0xBA, 0xAA, 0x28, 0x53, 0x44, 0x43, 0x12, 0x81, 0xB9, 0xCD, 0xCB,
         0xAA, 0x89, 0x20, 0x44, 0x43, 0x33, 0x12, 0x90, 0xCC, 0xDB, 0xAB, 0x9B, 0x19, 0x41, 0x53, 0x33,
         0x33, 0x12, 0xB9, 0xCD, 0xCB, 0xAB, 0x99, 0x18, 0x53, 0x34, 0x33, 0x23, 0x98, 0xFB, 0xCB, 0xAB,
         0xAB, 0x19, 0x52, 0x34, 0x34, 0x23, 0x81, 0xB9, 0xBD, 0xCB, 0xAA, 0x88, 0x21, 0x34, 0x34, 0x11,
         0xA8, 0xEB, 0xCB, 0xAA, 0x99, 0x31, 0x55, 0x43, 0x22, 0x02, 0xA8, 0xCB, 0xBD, 0xAC, 0x9A, 0x08,
         0x21, 0x32, 0x43, 0x33, 0x23, 0x23, 0x12, 0x90, 0xFB, 0xEB, 0xBB, 0xAC, 0x89, 0x31, 0x35, 0x44,
         0x32, 0x81, 0xB9, 0xDC, 0xBB, 0xBB, 0x9A, 0x31, 0x46, 0x34, 0x23, 0x02, 0xA9, 0xCC, 0xDB, 0xAB,
         0x9A, 0x10, 0x53, 0x34, 0x23, 0x13, 0x81, 0xCB, 0xCC, 0xAB, 0xBB, 0xAB, 0x08, 0x53, 0x34, 0x34,
         0x24, 0x33, 0x01, 0xB9, 0xBF, 0xBD, 0xBB, 0xAA, 0x08, 0x53, 0x45, 0x24, 0x22, 0x80, 0xA9, 0xBC,
         0xAD, 0xAB, 0x8A, 0x10, 0x53, 0x33, 0x33, 0x03, 0xA0, 0xDB, 0xBB, 0xBB, 0x9A, 0x28, 0x62, 0x43,
         0x33, 0x13, 0x90, 0xDA, 0xCC, 0xBC, 0xCB, 0x8A, 0x10, 0x43, 0x53, 0x53, 0x32, 0x12, 0x80, 0xBB,
         0xBD, 0xCC, 0xAB, 0x9A, 0x08, 0x42, 0x34, 0x34, 0x22, 0x01, 0xA9, 0xCB, 0xBB, 0xCB, 0xAB, 0x9A,
         0x20, 0x45, 0x32, 0x34, 0x22, 0x12, 0x80, 0xBB, 0xCD, 0xBC, 0xBC, 0xBC, 0x89, 0x53, 0x35, 0x34,
         0x13, 0x90, 0xDB, 0xDB, 0xBA, 0x9A, 0x89, 0x42, 0x53, 0x34, 0x13, 0x01, 0xC9, 0xDB, 0xCB, 0xBB,
         0x99, 0x20, 0x55, 0x34, 0x33, 0x22, 0x90, 0xDC, 0xCC, 0xBB, 0x9A, 0x20, 0x63, 0x43, 0x22, 0x81,
         0xA8, 0xBC, 0xBC, 0x9B, 0x09, 0x31, 0x45, 0x43, 0x23, 0x00, 0xA9, 0xDB, 0xBC, 0xBC, 0x9A, 0x09,
         0x31, 0x44, 0x34, 0x33, 0x23, 0x91, 0xDB, 0xCC, 0xAA, 0x9A, 0x88, 0x32, 0x45, 0x33, 0x12, 0xC9,
         0xBD, 0xBD, 0x9A, 0x89, 0x32, 0x45, 0x34, 0x33, 0x11, 0xA8, 0xDC, 0xBB, 0xAC, 0x8A, 0x10, 0x22,
         0x33, 0x34, 0x22, 0x90, 0xA9, 0xA9, 0xB9, 0xCC, 0xCC, 0xAA, 0x18, 0x53, 0x46, 0x43, 0x12, 0x81,
         0xCB, 0xCD, 0xCB, 0xAA, 0x09, 0x21, 0x55, 0x33, 0x33, 0x01, 0xC9, 0xEB, 0xBB, 0xBA, 0x89, 0x21,
         0x35, 0x35, 0x32, 0x02, 0xA8, 0xDC, 0xCB, 0xBB, 0x99, 0x20, 0x53, 0x34, 0x24, 0x23, 0x81, 0xB9,
         0xCD, 0xCB, 0xBB, 0xAB, 0x08, 0x41, 0x35, 0x34, 0x33, 0x22, 0x80, 0xCA, 0xBD, 0xBC, 0xBB, 0x8A,
         0x20, 0x45, 0x33, 0x24, 0x12, 0x80, 0xCA, 0xBC, 0xBC, 0xAA, 0x89, 0x10, 0x42, 0x53, 0x23, 0x23,
         0x01, 0xA9, 0xBB, 0xAD, 0x99, 0x08, 0x21, 0x34, 0x22, 0xA8, 0xCD, 0xCC, 0xBC, 0xAC, 0x99, 0x00,
         0x41, 0x55, 0x44, 0x33, 0x22, 0x91, 0xCA, 0xCD, 0xBC, 0xAB, 0x9A, 0x28, 0x63, 0x34, 0x33, 0x22,
         0x88, 0xDB, 0xCB, 0xAA, 0x99, 0x08, 0x22, 0x33, 0x33, 0x22, 0x01, 0x99, 0xBA, 0xAC, 0x88, 0x89,
         0x99, 0xDA, 0xCC, 0xCB, 0x09, 0x42, 0x63, 0x24, 0x23, 0x80, 0xCA, 0xBC, 0xAA, 0x18, 0x53, 0x43,
         0x23, 0x81, 0xEC, 0xCC, 0xBC, 0xAB, 0x89, 0x51, 0x45, 0x34, 0x34, 0x12, 0x90, 0xEB, 0xDB, 0xAC,
         0xAB, 0x89, 0x21, 0x34, 0x45, 0x32, 0x13, 0x01, 0xB9, 0xCC, 0xBC, 0xBB, 0x9A, 0x08, 0x32, 0x35,
         0x24, 0x12, 0x00, 0xA9, 0xBB, 0xCB, 0x8A, 0x20, 0x54, 0x43, 0x32, 0x02, 0xC9, 0xDC, 0xCB, 0xAB,
         0xAA, 0x10, 0x63, 0x53, 0x33, 0x22, 0x80, 0xDA, 0xBC, 0xBC, 0xAA, 0x18, 0x43, 0x45, 0x33, 0x23,
         0x81, 0xCA, 0xCD, 0xBB, 0xAC, 0x9A, 0x08, 0x32, 0x45, 0x43, 0x23, 0x12, 0x91, 0xB9, 0xCC, 0xCB,
         0xAB, 0x9A, 0x08, 0x22, 0x34, 0x34, 0x33, 0x01, 0xA8, 0xDB, 0xCB, 0xBA, 0x09, 0x21, 0x35, 0x35,
         0x13, 0x81, 0xCA, 0xBD, 0xAC, 0x9A, 0x09, 0x32, 0x34, 0x33, 0x13, 0x80, 0xA9, 0xAB, 0x89, 0x00,
         0x22, 0x81, 0xED, 0xDC, 0xCB, 0x9A, 0x10, 0x45, 0x44, 0x22, 0x02, 0xA8, 0xDC, 0xBB, 0xAC, 0x09,
         0x30, 0x45, 0x24, 0x23, 0x80, 0xBB, 0xCE, 0xBA, 0x99, 0x10, 0x44, 0x43, 0x23, 0x81, 0xCA, 0xCC,
         0xBB, 0xBB, 0x08, 0x52, 0x44, 0x33, 0x22, 0x80, 0xB8, 0xBD, 0xBC, 0xAA, 0x8A, 0x10, 0x42, 0x53,
         0x33, 0x23, 0x81, 0xB8, 0xCC, 0xBC, 0xBB, 0x89, 0x28, 0x54, 0x43, 0x22, 0x02, 0xB9, 0xDC, 0xBB,
         0xBA, 0x88, 0x31, 0x45, 0x43, 0x13, 0x81, 0xBA, 0xCD, 0xCB, 0x9A, 0x19, 0x41, 0x53, 0x33, 0x22,
         0x90, 0xBA, 0xCC, 0xBB, 0xAA, 0x89, 0x32, 0x53, 0x43, 0x33, 0x12, 0x90, 0xCA, 0xDB, 0xBC, 0xAB,
         0xAA, 0x00, 0x53, 0x54, 0x33, 0x33, 0x02, 0xB9, 0xCE, 0xAC, 0xBB, 0x8A, 0x18, 0x53, 0x44, 0x32,
         0x12, 0x81, 0xA9, 0xBD, 0xBD, 0xBA, 0x9A, 0x10, 0x32, 0x44, 0x33, 0x12, 0x22, 0x12, 0x80, 0xDB,
         0xAC, 0xBB, 0xBC, 0xBB, 0x0B, 0x72, 0x35, 0x33, 0x43, 0x12, 0xA8, 0xBD, 0xBC, 0xBC, 0x9A, 0x9A,
         0x18, 0x31, 0x45, 0x12, 0x11, 0x00, 0xA8, 0xAA, 0x09, 0x53
     };

#define  UFOSHOOT_WAV   7402

__align(2)
     const U8 UfoShoot_wav[] = 
     {
         0x52, 0x49, 0x46, 0x46, 0xE2, 0x1C, 0x00, 0x00,
         0x57, 0x41, 0x56, 0x45, 0x66, 0x6D, 0x74, 0x20,
         0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
         0x80, 0x3E, 0x00, 0x00, 0x00, 0x7D, 0x00, 0x00,
         0x02, 0x00, 0x10, 0x00, 0x64, 0x61, 0x74, 0x61,
         0xBE, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x28, 0x00,
         0x10, 0x00, 0x81, 0xFF, 0x09, 0xFF, 0x68, 0xFF,
         0xC3, 0x00, 0x4B, 0x02, 0xE3, 0x02, 0x04, 0x02,
         0x2E, 0x00, 0xA0, 0xFE, 0x84, 0xFE, 0xCE, 0xFF,
         0xEB, 0x00, 0x2B, 0x00, 0xFD, 0xFD, 0x3E, 0xFD,
         0x2A, 0x00, 0x06, 0x05, 0xD8, 0x06, 0xA3, 0x02,
         0x57, 0xFB, 0x20, 0xF7, 0xD7, 0xF8, 0x38, 0xFD,
         0x26, 0xFF, 0x6D, 0xFD, 0xF5, 0xFA, 0x3B, 0xFA,
         0x0A, 0xFB, 0x34, 0xFD, 0xB7, 0x02, 0x37, 0x0C,
         0x60, 0x14, 0x52, 0x12, 0x1F, 0x03, 0x85, 0xEF,
         0xFF, 0xE5, 0x96, 0xEE, 0x32, 0x05, 0x4D, 0x1E,
         0x81, 0x2E, 0x25, 0x2E, 0x2F, 0x1B, 0x40, 0xFD,
         0x45, 0xE6, 0x67, 0xE7, 0xAF, 0xFF, 0xB5, 0x17,
         0x45, 0x15, 0xC6, 0xF5, 0xB1, 0xD2, 0xE8, 0xC6,
         0x8F, 0xD4, 0xB7, 0xE6, 0x26, 0xEB, 0xB3, 0xE4,
         0xA8, 0xE2, 0x4F, 0xEB, 0x92, 0xF6, 0xB7, 0xFD,
         0x9B, 0x08, 0x46, 0x24, 0xD9, 0x4C, 0x39, 0x68,
         0x4D, 0x5C, 0x25, 0x2B, 0x1D, 0xF5, 0x8A, 0xDD,
         0xBE, 0xEC, 0xB2, 0x0C, 0x58, 0x20, 0x4E, 0x1B,
         0xB1, 0x05, 0xF9, 0xEA, 0x62, 0xD0, 0x65, 0xB9,
         0xF5, 0xAE, 0x17, 0xBA, 0x65, 0xD6, 0x17, 0xF0,
         0x1C, 0xF6, 0xD2, 0xED, 0xE4, 0xEE, 0x2F, 0x08,
         0x26, 0x2C, 0x96, 0x3D, 0x2B, 0x30, 0xB7, 0x16,
         0x63, 0x0D, 0xD8, 0x19, 0x49, 0x27, 0x47, 0x22,
         0x4E, 0x10, 0x66, 0x06, 0xE2, 0x0B, 0xD7, 0x0F,
         0xD4, 0xFE, 0xF5, 0xDC, 0x2B, 0xC3, 0xC6, 0xC3,
         0x99, 0xD7, 0x2C, 0xE8, 0x05, 0xE8, 0x47, 0xDC,
         0x31, 0xD2, 0xBE, 0xD2, 0x51, 0xE1, 0x97, 0xFE,
         0x9C, 0x24, 0xC1, 0x41, 0xFB, 0x41, 0x31, 0x24,
         0xFC, 0x03, 0x66, 0x05, 0x03, 0x31, 0x46, 0x64,
         0x26, 0x6B, 0xAF, 0x2E, 0xA0, 0xCD, 0x8D, 0x86,
         0x24, 0x85, 0xF5, 0xBE, 0x1C, 0xFF, 0x14, 0x15,
         0xAD, 0xFC, 0xA8, 0xDA, 0x87, 0xD4, 0x78, 0xEC,
         0x00, 0x05, 0xC1, 0x04, 0x94, 0xF2, 0xD6, 0xEB,
         0xD9, 0x01, 0xF5, 0x24, 0xCA, 0x35, 0xFC, 0x26,
         0x5E, 0x10, 0x36, 0x14, 0x73, 0x39, 0x31, 0x57,
         0x3D, 0x3B, 0xA8, 0xDD, 0xDA, 0xA7, 0x91, 0xA1,
         0x05, 0xBC, 0x64, 0x33, 0x0C, 0x66, 0x7B, 0x3F,
         0x2C, 0xE2, 0x51, 0x9E, 0x6C, 0x8B, 0xB8, 0xA3,
         0x9A, 0xD5, 0x46, 0x23, 0xD2, 0x62, 0x68, 0x6C,
         0xE9, 0x58, 0x39, 0xFA, 0x1E, 0xC2, 0xD2, 0xE6,
         0x82, 0x3E, 0x69, 0x67, 0xAB, 0x36, 0x82, 0xD3,
         0x5E, 0x90, 0x3B, 0x94, 0x1A, 0xC9, 0x0A, 0xFE,
         0xF0, 0x15, 0x4E, 0x12, 0xB0, 0x00, 0xE9, 0xE9,
         0x23, 0xD4, 0xFD, 0xCC, 0x38, 0xE4, 0x97, 0x15,
         0x26, 0x41, 0x39, 0x48, 0x30, 0x33, 0xF4, 0x28,
         0xB3, 0x38, 0x4E, 0x3E, 0x86, 0x11, 0xC8, 0xC6,
         0x81, 0xA2, 0x60, 0xC6, 0x8D, 0x05, 0x74, 0x1C,
         0x63, 0xFB, 0x49, 0xCC, 0xC3, 0xB1, 0x59, 0xB1,
         0xC7, 0xC9, 0xE0, 0xFC, 0x85, 0x4E, 0xD6, 0x6E,
         0x1F, 0x6F, 0xF3, 0x35, 0xD4, 0xE9, 0xCA, 0xCB,
         0xDC, 0xEF, 0x90, 0x2B, 0x9F, 0x42, 0x01, 0x19,
         0xF7, 0xD3, 0x6C, 0xB2, 0xE0, 0xC3, 0xF4, 0xDE,
         0x3D, 0xE1, 0x01, 0xDA, 0x1C, 0xE4, 0x63, 0xF7,
         0x45, 0xFF, 0x8A, 0x05, 0x3C, 0x1D, 0x40, 0x36,
         0xE5, 0x31, 0x73, 0x18, 0xE8, 0x0C, 0xDC, 0x13,
         0xAB, 0x16, 0x32, 0x17, 0x57, 0x28, 0x45, 0x34,
         0x86, 0x0C, 0x6B, 0xBF, 0xD1, 0x9B, 0x6F, 0xC5,
         0xF2, 0xFE, 0x62, 0x01, 0x26, 0xD7, 0xCB, 0xBD,
         0x77, 0xD5, 0x30, 0x0E, 0xB0, 0x42, 0x94, 0x4E,
         0x27, 0x2B, 0xE9, 0x02, 0x3F, 0x05, 0x1A, 0x24,
         0xBB, 0x2B, 0xBC, 0x15, 0xD6, 0x07, 0xF9, 0x05,
         0x4C, 0xEF, 0x8C, 0xCB, 0x18, 0xCB, 0x14, 0xF0,
         0x18, 0x02, 0x02, 0xE8, 0x72, 0xC8, 0xCE, 0xC6,
         0x81, 0xDE, 0x61, 0x04, 0xD9, 0x30, 0x65, 0x49,
         0x94, 0x37, 0x61, 0x11, 0x3D, 0xFE, 0x03, 0x04,
         0x37, 0x13, 0xF8, 0x28, 0x2E, 0x3E, 0xD5, 0x35,
         0x47, 0x04, 0x3C, 0xCE, 0x2E, 0xC0, 0xBD, 0xD8,
         0x65, 0xF1, 0xBF, 0xF0, 0xD8, 0xE3, 0x0C, 0xE3,
         0x6A, 0xE6, 0x8A, 0xD1, 0x35, 0xB5, 0x2A, 0xD1,
         0x41, 0x2D, 0x8B, 0x6D, 0x47, 0x4C, 0x49, 0x03,
         0x60, 0xF2, 0xAE, 0x14, 0xA1, 0x22, 0x38, 0x0F,
         0x9C, 0x0C, 0x3A, 0x2C, 0x23, 0x44, 0x6B, 0x2F,
         0xC8, 0xF8, 0xDE, 0xC3, 0x37, 0xAD, 0xA3, 0xC0,
         0x32, 0xEE, 0xF6, 0x06, 0x10, 0xEC, 0x0C, 0xC4,
         0x44, 0xCC, 0xDF, 0xF7, 0x0F, 0x07, 0xDA, 0xFA,
         0xC6, 0x0D, 0x30, 0x39, 0xEB, 0x34, 0x6B, 0xFC,
         0x44, 0xE5, 0x99, 0x19, 0x88, 0x53, 0x37, 0x40,
         0x5C, 0xF5, 0xE0, 0xD6, 0xB8, 0x09, 0x09, 0x39,
         0x9C, 0x12, 0x9E, 0xC2, 0x75, 0xAC, 0x1E, 0xE0,
         0x8C, 0x1C, 0x6F, 0x27, 0xE3, 0xF6, 0xFD, 0xB6,
         0x07, 0xAA, 0x4D, 0xDA, 0x19, 0x0F, 0x64, 0x24,
         0x54, 0x26, 0xBB, 0x19, 0x35, 0x00, 0x19, 0xF6,
         0x90, 0x06, 0x2C, 0x17, 0x26, 0x22, 0xA3, 0x36,
         0xB6, 0x3B, 0xA6, 0x0F, 0xF4, 0xD3, 0x2C, 0xC5,
         0xEC, 0xE1, 0x9A, 0xFD, 0xE6, 0x09, 0x87, 0x11,
         0xC0, 0x08, 0x2C, 0xE0, 0x20, 0xBB, 0xE8, 0xD0,
         0xBC, 0x0F, 0x36, 0x26, 0x3B, 0x03, 0x72, 0xF4,
         0x31, 0x1B, 0xAC, 0x2C, 0x41, 0xFB, 0xEC, 0xCD,
         0xA8, 0xE4, 0xDA, 0x13, 0x00, 0x20, 0x4D, 0x15,
         0xEE, 0x10, 0x1F, 0x0F, 0x9D, 0x09, 0xF9, 0x01,
         0xF2, 0xF1, 0xAB, 0xE2, 0x80, 0xF1, 0x7F, 0x15,
         0x42, 0x15, 0x2F, 0xE4, 0x39, 0xCA, 0x5D, 0xF4,
         0xD2, 0x22, 0x7E, 0x0D, 0xA3, 0xD7, 0x52, 0xD5,
         0xC9, 0x0E, 0x19, 0x39, 0x49, 0x20, 0xD5, 0xF1,
         0xE4, 0xF0, 0x13, 0x03, 0xD6, 0xF4, 0xBE, 0xF1,
         0xFF, 0x1D, 0x61, 0x2A, 0xF5, 0xF0, 0x86, 0xD4,
         0xAE, 0x05, 0x75, 0x2B, 0x01, 0x0A, 0xF5, 0xD7,
         0xF7, 0xDA, 0xAC, 0x0E, 0x12, 0x2F, 0x22, 0x12,
         0x9F, 0xE2, 0x82, 0xD6, 0xBD, 0xE4, 0x90, 0xF5,
         0x55, 0x08, 0x91, 0x15, 0x10, 0x14, 0xBD, 0x0A,
         0xAE, 0x00, 0xFC, 0xFD, 0x6A, 0x09, 0x02, 0x0E,
         0xA1, 0xF6, 0x61, 0xDE, 0xDE, 0xE9, 0x2E, 0x0B,
         0xE4, 0x1B, 0x7E, 0x13, 0xD1, 0x04, 0xA5, 0xFD,
         0x7B, 0x00, 0x33, 0x08, 0xD0, 0x02, 0x99, 0xEA,
         0x4A, 0xE2, 0xD6, 0xFE, 0xC2, 0x14, 0x9A, 0x06,
         0x07, 0xFC, 0x9C, 0x03, 0x69, 0xF2, 0xEA, 0xD2,
         0x81, 0xE6, 0xA7, 0x23, 0xEC, 0x38, 0xE8, 0x0C,
         0x95, 0xDB, 0x50, 0xE3, 0xD4, 0x1A, 0xD1, 0x36,
         0x4C, 0x0B, 0x23, 0xD2, 0x30, 0xD9, 0xB2, 0x12,
         0xD3, 0x34, 0x23, 0x1D, 0xAA, 0xEC, 0xAC, 0xD9,
         0x86, 0xEE, 0x51, 0x02, 0x11, 0xFD, 0x6B, 0xF4,
         0x20, 0xF7, 0xB3, 0xF9, 0x97, 0xF8, 0x3E, 0xFE,
         0xB5, 0x0D, 0xD8, 0x18, 0xF7, 0x0A, 0x8F, 0xEC,
         0x16, 0xEA, 0x8F, 0x0F, 0xD9, 0x29, 0xCF, 0x18,
         0xB4, 0xFE, 0x8C, 0xFA, 0x9C, 0x01, 0x56, 0x08,
         0x01, 0x06, 0xCF, 0xEB, 0x68, 0xD2, 0xDE, 0xE2,
         0x4A, 0xFF, 0x1B, 0xFA, 0xED, 0xF8, 0xE7, 0x17,
         0x0D, 0x1A, 0x5E, 0xF1, 0x37, 0xF0, 0x80, 0x20,
         0x92, 0x26, 0x2B, 0xF3, 0xEE, 0xDD, 0x37, 0x02,
         0xD0, 0x1B, 0x7F, 0x09, 0x94, 0xF8, 0xD7, 0x05,
         0x73, 0x0F, 0x33, 0xF6, 0x39, 0xD4, 0x40, 0xDA,
         0x20, 0x08, 0x1C, 0x28, 0x16, 0x19, 0xDB, 0xF2,
         0x26, 0xDD, 0x4A, 0xEF, 0x16, 0x1C, 0xCF, 0x2A,
         0xD9, 0x03, 0x74, 0xE1, 0x91, 0xEC, 0x47, 0x05,
         0xB2, 0x10, 0x44, 0x0C, 0x35, 0xF2, 0x84, 0xDC,
         0xE0, 0xEF, 0xAB, 0x16, 0x87, 0x26, 0xC6, 0x18,
         0xB9, 0xFA, 0x54, 0xE8, 0x69, 0xF7, 0x53, 0x0D,
         0xD6, 0x0B, 0xA9, 0xFF, 0xB7, 0xEF, 0x25, 0xDB,
         0x57, 0xE3, 0x13, 0x11, 0x4B, 0x2C, 0xEC, 0x15,
         0xFA, 0xF2, 0x50, 0xE4, 0x72, 0xE9, 0xD2, 0x00,
         0xA5, 0x20, 0x4E, 0x27, 0x5C, 0x04, 0x45, 0xDD,
         0xD8, 0xE1, 0xF7, 0x05, 0x0B, 0x13, 0xC8, 0x00,
         0xBA, 0xFE, 0x97, 0x14, 0x58, 0x0D, 0x77, 0xE2,
         0x51, 0xD8, 0x23, 0x06, 0x75, 0x25, 0xFB, 0x05,
         0xF0, 0xDD, 0xA5, 0xF0, 0x16, 0x1E, 0xD9, 0x18,
         0xA1, 0xEE, 0x50, 0xEB, 0x50, 0x0A, 0x67, 0x0D,
         0x01, 0xFA, 0x55, 0xFB, 0x3D, 0x07, 0x1E, 0x01,
         0x4A, 0xF2, 0xBF, 0xF3, 0x3E, 0x09, 0xB3, 0x19,
         0xA8, 0x0C, 0x91, 0xF3, 0xE9, 0xF1, 0x24, 0x01,
         0x09, 0xFC, 0x81, 0xE5, 0x63, 0xF0, 0x63, 0x22,
         0x6D, 0x2F, 0xA0, 0xF6, 0x7F, 0xC7, 0x55, 0xDF,
         0x40, 0x1A, 0x7A, 0x3D, 0xE4, 0x25, 0x31, 0xE7,
         0x82, 0xD4, 0x8D, 0xFB, 0x9B, 0x04, 0xC5, 0xEE,
         0x29, 0x05, 0x80, 0x1E, 0x83, 0xF6, 0x84, 0xD1,
         0x01, 0xF1, 0xBE, 0x1C, 0xB6, 0x1E, 0xB8, 0x0C,
         0x10, 0x06, 0x92, 0x05, 0x0E, 0xF8, 0xFC, 0xEB,
         0x17, 0xFC, 0x3C, 0x0C, 0x76, 0xFC, 0xD2, 0xF0,
         0x94, 0xFF, 0xA9, 0x04, 0xCF, 0xFB, 0xAF, 0xFF,
         0xB9, 0x01, 0xA8, 0xF6, 0x1B, 0xFA, 0xAF, 0x09,
         0x66, 0x06, 0x66, 0xFE, 0x27, 0x0E, 0xA2, 0x1B,
         0xF1, 0x09, 0x3D, 0xF4, 0x94, 0xF2, 0x34, 0xF1,
         0x34, 0xE8, 0xFE, 0xEB, 0x47, 0x02, 0x64, 0x1B,
         0xB5, 0x1E, 0x83, 0xFF, 0x9F, 0xE2, 0x54, 0xF2,
         0x41, 0x0E, 0xD1, 0x08, 0xD8, 0xFD, 0x76, 0x08,
         0x21, 0x0E, 0x89, 0x03, 0x94, 0xF7, 0x79, 0xE7,
         0xBF, 0xDD, 0xF5, 0xFD, 0xE6, 0x36, 0x68, 0x3B,
         0x49, 0xF8, 0x04, 0xC3, 0x81, 0xDD, 0x0C, 0x10,
         0x8B, 0x0A, 0x85, 0xE7, 0x4D, 0xF5, 0x36, 0x2A,
         0x4D, 0x2F, 0x9B, 0xF0, 0x45, 0xC6, 0x7C, 0xEA,
         0xD1, 0x22, 0x90, 0x2D, 0x13, 0x17, 0x7A, 0xF6,
         0x54, 0xD2, 0xEC, 0xCE, 0x65, 0x01, 0x30, 0x31,
         0x57, 0x22, 0xA6, 0xED, 0x6A, 0xDA, 0x39, 0x01,
         0x49, 0x29, 0x0C, 0x10, 0x83, 0xD3, 0xAA, 0xD1,
         0x28, 0x10, 0x2D, 0x2F, 0x47, 0x0C, 0x4F, 0xEC,
         0xD7, 0xF4, 0x0A, 0x02, 0x01, 0x01, 0xEA, 0x00,
         0x05, 0x04, 0xDC, 0x09, 0xD0, 0x14, 0xC7, 0x07,
         0xC1, 0xD7, 0x23, 0xC8, 0xE8, 0x03, 0xAA, 0x38,
         0x14, 0x1C, 0x51, 0xEF, 0xA0, 0xF8, 0xEF, 0x00,
         0xBA, 0xE3, 0xF4, 0xEA, 0x24, 0x23, 0x3E, 0x29,
         0xBA, 0xF0, 0x5E, 0xDA, 0x3B, 0xF8, 0xDC, 0x0D,
         0xEB, 0x12, 0xB2, 0x12, 0xA2, 0xF7, 0x17, 0xD5,
         0x32, 0xE5, 0x78, 0x1E, 0xF2, 0x35, 0x18, 0x0D,
         0x2F, 0xDD, 0x8F, 0xE3, 0x1A, 0x09, 0x4A, 0x0E,
         0x31, 0xF5, 0x78, 0xEE, 0xAE, 0xFB, 0x47, 0x02,
         0x17, 0x05, 0xD6, 0x0C, 0xF0, 0x13, 0x56, 0x10,
         0xBE, 0xF7, 0x0B, 0xE2, 0xDF, 0xF8, 0xBE, 0x1B,
         0xCA, 0x08, 0xD0, 0xDD, 0x19, 0xDE, 0x3F, 0xFF,
         0xC3, 0x18, 0xA6, 0x1E, 0xE7, 0x0F, 0x87, 0xF9,
         0x6C, 0xF5, 0x32, 0x03, 0x52, 0x06, 0x94, 0xF1,
         0x29, 0xE0, 0x8D, 0xF3, 0x98, 0x1B, 0x71, 0x27,
         0x4B, 0x0E, 0xC2, 0xE9, 0xB3, 0xD0, 0x29, 0xDC,
         0xC9, 0x0B, 0x23, 0x30, 0xED, 0x27, 0x16, 0x05,
         0xEB, 0xEB, 0x54, 0xEE, 0x29, 0x01, 0xA9, 0x09,
         0x42, 0xFB, 0xB4, 0xE0, 0x33, 0xDB, 0xA8, 0x07,
         0x8E, 0x39, 0x99, 0x26, 0x0B, 0xEE, 0x1B, 0xDE,
         0x23, 0xED, 0x2A, 0xFC, 0xAD, 0x14, 0x9B, 0x21,
         0xCF, 0x07, 0x84, 0xEA, 0x53, 0xEA, 0x5D, 0xF5,
         0x85, 0x03, 0xF2, 0x0B, 0xC3, 0xFC, 0x21, 0xF0,
         0x70, 0xFE, 0x38, 0x13, 0xFD, 0x1A, 0x74, 0x0D,
         0x7C, 0xF0, 0x74, 0xE9, 0xBA, 0x02, 0x23, 0x08,
         0x23, 0xEE, 0x07, 0xF1, 0x4E, 0x17, 0x74, 0x20,
         0x2B, 0xFB, 0x4A, 0xDC, 0x73, 0xE8, 0x25, 0x07,
         0xFC, 0x0A, 0x08, 0xFD, 0x59, 0x0B, 0xD1, 0x24,
         0xB9, 0x15, 0x8B, 0xE5, 0xD4, 0xD4, 0x82, 0xFB,
         0x03, 0x2A, 0x73, 0x25, 0xFB, 0xE8, 0xEB, 0xC3,
         0x3C, 0xEA, 0xDA, 0x17, 0x62, 0x04, 0x84, 0xE0,
         0xB8, 0xF3, 0xBC, 0x25, 0x7A, 0x37, 0xB4, 0x1D,
         0x17, 0xFA, 0xB0, 0xE7, 0x73, 0xEC, 0x3A, 0xFD,
         0x9C, 0x00, 0x02, 0xF8, 0xD4, 0xFA, 0x89, 0x06,
         0xC3, 0x00, 0x68, 0xE9, 0xEE, 0xE7, 0xD5, 0x03,
         0xF8, 0x12, 0x83, 0xFF, 0xD4, 0xF3, 0x39, 0x0E,
         0xE9, 0x2D, 0x5B, 0x18, 0x53, 0xE5, 0x49, 0xE7,
         0x2E, 0x10, 0x7B, 0x0E, 0x80, 0xE8, 0xA6, 0xDD,
         0xD8, 0xF5, 0xC0, 0x0A, 0x5B, 0x03, 0x3D, 0xFC,
         0x57, 0x10, 0xFF, 0x1F, 0x6D, 0xFB, 0x2B, 0xCF,
         0x0B, 0xE4, 0x27, 0x1F, 0x25, 0x33, 0x83, 0x08,
         0xFA, 0xD6, 0x30, 0xEA, 0x54, 0x25, 0xF8, 0x1A,
         0x52, 0xDC, 0x09, 0xD8, 0xC0, 0xFB, 0x65, 0xFC,
         0x7C, 0xFB, 0x79, 0x17, 0x20, 0x2A, 0x3B, 0x19,
         0x85, 0xFA, 0x30, 0xEA, 0x60, 0xF7, 0x4D, 0x03,
         0x77, 0xEE, 0x2B, 0xE6, 0xEB, 0x10, 0x45, 0x24,
         0x8E, 0xF5, 0x37, 0xD7, 0x49, 0xF7, 0x7A, 0x0D,
         0x36, 0x02, 0x36, 0x06, 0xCC, 0x14, 0xF7, 0x0C,
         0x3F, 0xFE, 0x00, 0xF7, 0x3E, 0x00, 0x13, 0x19,
         0xB4, 0x0E, 0xC0, 0xDB, 0x70, 0xCC, 0x82, 0xFB,
         0xF1, 0x21, 0x84, 0x0B, 0x2A, 0xEA, 0x61, 0xFF,
         0xDD, 0x20, 0x99, 0x03, 0x1F, 0xDB, 0x1A, 0xFE,
         0xA8, 0x30, 0x31, 0x14, 0x8C, 0xE6, 0x6A, 0xF2,
         0xFD, 0x00, 0xEE, 0xF3, 0x42, 0xFC, 0x75, 0x14,
         0xDE, 0x0A, 0x97, 0xEF, 0xFA, 0xF6, 0x5F, 0x00,
         0x40, 0xF6, 0x7E, 0xFB, 0x51, 0x0F, 0x6E, 0x04,
         0x70, 0xF3, 0xAA, 0x13, 0x2F, 0x29, 0xCA, 0xFB,
         0x5D, 0xED, 0xE6, 0x21, 0x4C, 0x18, 0xFF, 0xC8,
         0x81, 0xC4, 0x36, 0xFF, 0x66, 0x11, 0xC7, 0x0D,
         0x28, 0x08, 0x5F, 0xE5, 0xEA, 0xE8, 0x9C, 0x30,
         0x7C, 0x37, 0x13, 0xE8, 0x0A, 0xD4, 0x74, 0x17,
         0xF1, 0x2D, 0xDA, 0xF3, 0xC2, 0xD0, 0x06, 0xF2,
         0x29, 0x1D, 0x4D, 0x1C, 0xA5, 0xF3, 0xF9, 0xDF,
         0x07, 0xFE, 0xE1, 0x1D, 0x24, 0x0B, 0xC9, 0xDF,
         0x9A, 0xE5, 0xE1, 0x18, 0xF4, 0x1B, 0x0D, 0xEE,
         0x47, 0xEC, 0x66, 0x0E, 0x3C, 0x0A, 0x64, 0xF4,
         0xC6, 0xF2, 0x5C, 0xEE, 0x86, 0xFE, 0xED, 0x2F,
         0x80, 0x3B, 0x7D, 0x06, 0x02, 0xD7, 0xEC, 0xDA,
         0x66, 0xFB, 0x6C, 0x13, 0x4D, 0x12, 0x31, 0x00,
         0xA1, 0xE3, 0xA1, 0xD2, 0x7B, 0xF2, 0x4C, 0x19,
         0xE8, 0xFE, 0xBE, 0xE1, 0x86, 0x0B, 0x68, 0x31,
         0xFF, 0x25, 0xA4, 0x1D, 0xCC, 0x0A, 0x65, 0xE5,
         0x97, 0xEB, 0x55, 0xFF, 0x03, 0xEE, 0x57, 0xFA,
         0x58, 0x20, 0x87, 0xF2, 0x5C, 0xA2, 0x1F, 0xC7,
         0xA9, 0x2A, 0xF4, 0x30, 0x58, 0x05, 0xBB, 0x1B,
         0x00, 0x2E, 0x4E, 0xEE, 0x87, 0xE1, 0x53, 0x32,
         0xE5, 0x2A, 0xBA, 0xC9, 0x4A, 0xE2, 0x0F, 0x41,
         0x6D, 0x11, 0x49, 0x9D, 0xB4, 0x9F, 0xF8, 0xED,
         0x2F, 0x25, 0x6E, 0x36, 0x31, 0x24, 0x3F, 0x00,
         0x4E, 0x00, 0xB5, 0x19, 0x03, 0x1A, 0x6B, 0x07,
         0x34, 0xED, 0x94, 0xD6, 0x9A, 0xE9, 0x17, 0x0B,
         0xF7, 0xF7, 0xF3, 0xDE, 0x38, 0x0D, 0xF6, 0x42,
         0x2C, 0x1F, 0x88, 0xD4, 0x8F, 0xD0, 0xF0, 0x17,
         0x1E, 0x37, 0xD7, 0xFC, 0x58, 0xDA, 0x36, 0xFB,
         0x6B, 0xF2, 0x0A, 0xB9, 0xAF, 0xCF, 0x8B, 0x2C,
         0xCC, 0x43, 0x1D, 0x0B, 0x69, 0xEA, 0x67, 0x05,
         0xB3, 0x2E, 0x85, 0x34, 0xE0, 0x09, 0x41, 0xDF,
         0xC2, 0xED, 0xB1, 0x11, 0xCE, 0xED, 0x72, 0xAA,
         0xEA, 0xDB, 0x3C, 0x3B, 0x59, 0x10, 0xFC, 0xB8,
         0x54, 0xE7, 0xEF, 0x2F, 0x27, 0x11, 0x67, 0xFD,
         0x5A, 0x31, 0x15, 0x38, 0x21, 0xF6, 0xEB, 0xCB,
         0xB8, 0xEC, 0x98, 0x25, 0x95, 0x23, 0xB8, 0xE7,
         0xE0, 0xD7, 0x11, 0xFE, 0x87, 0xF9, 0xAF, 0xDC,
         0xD5, 0xF8, 0xD1, 0x25, 0xD0, 0x17, 0x0F, 0xEF,
         0xB2, 0xE5, 0xD9, 0x03, 0x76, 0x20, 0xF1, 0x05,
         0xC4, 0xDD, 0xF5, 0xFB, 0x0C, 0x2B, 0x7A, 0x16,
         0x0F, 0xF2, 0x35, 0xF2, 0xB1, 0xF3, 0xEE, 0xF2,
         0x37, 0x01, 0x57, 0x01, 0x20, 0x07, 0xAA, 0x23,
         0x91, 0x0F, 0x2A, 0xD2, 0x80, 0xD4, 0xD3, 0x0C,
         0x96, 0x17, 0x60, 0xFE, 0xA8, 0x03, 0xC2, 0x13,
         0x5F, 0x0A, 0xFA, 0x01, 0xED, 0x0A, 0x97, 0x09,
         0x19, 0xF1, 0x95, 0xD8, 0xD6, 0xE2, 0xF5, 0x08,
         0x02, 0x1D, 0x2F, 0x06, 0x1B, 0xE5, 0xFB, 0xEE,
         0x00, 0x15, 0x84, 0x1D, 0xB1, 0x0E, 0x1E, 0x0B,
         0xCD, 0xFB, 0xBA, 0xE9, 0x66, 0xFE, 0x08, 0x10,
         0x3C, 0xF8, 0x52, 0x00, 0xAE, 0x28, 0x2E, 0x05,
         0x3B, 0xCA, 0x9F, 0xF5, 0xFB, 0x2C, 0xF7, 0x01,
         0xB8, 0xDA, 0x38, 0xFC, 0xB5, 0x0B, 0xAB, 0xE7,
         0x31, 0xD7, 0x47, 0xEF, 0x59, 0x0E, 0x73, 0x29,
         0x72, 0x28, 0x6D, 0xFA, 0x5F, 0xEA, 0xEA, 0x29,
         0x77, 0x4E, 0x11, 0x06, 0xAA, 0xBD, 0xE0, 0xDF,
         0x77, 0x1B, 0x44, 0x0D, 0x33, 0xE1, 0x6D, 0xD1,
         0x4C, 0xD1, 0xF2, 0xE0, 0x68, 0x06, 0x16, 0x17,
         0xE6, 0x0D, 0x8D, 0x12, 0xAE, 0x14, 0x14, 0x03,
         0x66, 0x01, 0x19, 0x0F, 0xB9, 0x10, 0x3C, 0x11,
         0x01, 0x0C, 0xF4, 0xEE, 0x41, 0xD8, 0xAB, 0xE2,
         0xE6, 0x01, 0xC3, 0x17, 0x55, 0x0A, 0xB2, 0xF2,
         0x02, 0xFE, 0x1A, 0x0B, 0x85, 0xEF, 0xC2, 0xE3,
         0x7A, 0x06, 0x61, 0x0D, 0x48, 0xE5, 0xB5, 0xD4,
         0x3D, 0xF7, 0x39, 0x29, 0xCD, 0x40, 0x91, 0x1C,
         0xF9, 0xDE, 0x44, 0xE0, 0x80, 0x14, 0xED, 0x1D,
         0x54, 0xFA, 0x69, 0xEF, 0x43, 0xFA, 0x00, 0xF2,
         0xBC, 0xE7, 0x0E, 0xF8, 0xBE, 0x0D, 0x30, 0x18,
         0x88, 0x1B, 0x10, 0x09, 0xB8, 0xE4, 0xB0, 0xDD,
         0xEE, 0x04, 0xC4, 0x1B, 0xC1, 0x06, 0xFC, 0xEB,
         0xB9, 0xE2, 0x1F, 0xE8, 0xA1, 0xFA, 0x7F, 0x12,
         0x39, 0x1A, 0x92, 0x0C, 0xEF, 0x00, 0x22, 0x05,
         0x1B, 0x0A, 0x12, 0x0B, 0xC9, 0x16, 0x75, 0x1D,
         0x9C, 0x08, 0x80, 0xF7, 0xB6, 0xED, 0x0B, 0xD8,
         0xFE, 0xE0, 0x5E, 0x09, 0xF4, 0x0D, 0xDF, 0xF8,
         0x43, 0xFC, 0xBE, 0x00, 0x65, 0xFB, 0x74, 0x09,
         0x85, 0x0A, 0x59, 0xE3, 0x17, 0xD9, 0x45, 0x14,
         0xD4, 0x43, 0x02, 0x25, 0xC7, 0xF6, 0x38, 0x04,
         0x2E, 0x1D, 0x8E, 0xFE, 0xEB, 0xE2, 0x3B, 0xFB,
         0xBB, 0x0C, 0x51, 0xFC, 0x1C, 0xF0, 0x36, 0xEB,
         0xAA, 0xED, 0xAA, 0x00, 0x5D, 0x0C, 0x4D, 0x04,
         0xC6, 0xFA, 0x4D, 0xE9, 0xB5, 0xE4, 0x84, 0x08,
         0xEF, 0x24, 0xE3, 0x1A, 0xAA, 0x0A, 0x3C, 0xF8,
         0x57, 0xE8, 0xC1, 0xF8, 0x47, 0x09, 0xF7, 0x04,
         0x42, 0x1E, 0x66, 0x39, 0x45, 0x0D, 0xA1, 0xD8,
         0xBC, 0xE3, 0x58, 0xF7, 0x26, 0xF2, 0x97, 0xF4,
         0x6B, 0xF7, 0x87, 0xF9, 0xC7, 0x08, 0x9C, 0xFD,
         0xB0, 0xD5, 0x51, 0xDE, 0xBD, 0x17, 0x90, 0x14,
         0x16, 0xD9, 0x67, 0xE6, 0x98, 0x40, 0xC9, 0x60,
         0x9C, 0x2C, 0xB7, 0x01, 0x7A, 0xEF, 0x0D, 0xDA,
         0xFD, 0xE6, 0x69, 0x1D, 0x34, 0x17, 0xD3, 0xC3,
         0x30, 0x9A, 0x08, 0xD7, 0x79, 0x1F, 0x7A, 0x11,
         0xA4, 0xE4, 0x4B, 0x00, 0xED, 0x34, 0x72, 0x22,
         0x95, 0x0D, 0x4C, 0x34, 0xBD, 0x1E, 0xB4, 0xC0,
         0xBF, 0xC5, 0x66, 0x23, 0x78, 0x23, 0x70, 0xDA,
         0xDE, 0xD5, 0x0B, 0xFE, 0x5C, 0xFC, 0xC8, 0xF2,
         0x98, 0x08, 0xFC, 0x11, 0x7C, 0xFE, 0x22, 0xFB,
         0x94, 0x13, 0x50, 0x1E, 0xE8, 0x08, 0x9A, 0xE2,
         0xC8, 0xD2, 0xF3, 0xFB, 0x9B, 0x2D, 0x47, 0x11,
         0x7F, 0xD7, 0xA7, 0xE5, 0xD9, 0x0A, 0x9E, 0x07,
         0xBB, 0x0E, 0x4C, 0x1B, 0xF7, 0xF6, 0xEC, 0xDD,
         0xD2, 0x03, 0x9C, 0x22, 0xC5, 0x0A, 0x27, 0xE1,
         0xDC, 0xE0, 0x66, 0x06, 0x88, 0x14, 0xF6, 0xF8,
         0xB3, 0xF1, 0xFE, 0x08, 0xE4, 0x0F, 0x15, 0x0E,
         0xE7, 0x0D, 0x3E, 0xFA, 0xE0, 0xED, 0xE1, 0xFC,
         0xBE, 0xFA, 0x0E, 0xE0, 0x06, 0xE9, 0xFE, 0x1D,
         0xDE, 0x33, 0x4B, 0x07, 0xB7, 0xD2, 0xEE, 0xD0,
         0xE2, 0xFE, 0x06, 0x30, 0xF6, 0x3D, 0x8B, 0x16,
         0x6D, 0xDC, 0xF4, 0xDB, 0x75, 0x08, 0xCE, 0x0F,
         0x3D, 0x00, 0xA3, 0x0B, 0xE0, 0x0D, 0x75, 0xEE,
         0xA0, 0xDF, 0x34, 0xF0, 0x5C, 0x01, 0x47, 0x06,
         0x2D, 0xFE, 0x8F, 0xF8, 0x87, 0x0F, 0xF0, 0x30,
         0x79, 0x20, 0xB2, 0xE2, 0xEE, 0xC9, 0x1E, 0xFA,
         0xAC, 0x2D, 0xB6, 0x2F, 0x0D, 0x0C, 0x20, 0xDF,
         0x2D, 0xCE, 0x0F, 0xF3, 0xE8, 0x24, 0x9C, 0x1E,
         0x85, 0xE7, 0x4B, 0xC8, 0x48, 0xE5, 0x53, 0x1D,
         0x56, 0x35, 0xBC, 0x1F, 0xFC, 0x04, 0x62, 0x02,
         0x90, 0x03, 0x75, 0xF0, 0x6F, 0xDF, 0x41, 0xF1,
         0xD7, 0x0A, 0x01, 0x00, 0xEB, 0xF0, 0x92, 0x11,
         0xA3, 0x2B, 0x44, 0xF7, 0x9F, 0xB3, 0xCD, 0xCD,
         0x81, 0x2B, 0x4C, 0x55, 0xCA, 0x2F, 0xFC, 0x04,
         0x0E, 0xEA, 0x3B, 0xC1, 0x32, 0xBF, 0x0A, 0x12,
         0xF4, 0x4C, 0x01, 0x17, 0x7D, 0xD6, 0x49, 0xE8,
         0xED, 0x0B, 0x21, 0x07, 0x70, 0xF9, 0x6F, 0xFC,
         0x3F, 0xFD, 0xC7, 0xFB, 0x9D, 0x00, 0x8E, 0xFD,
         0x39, 0xE5, 0x0A, 0xD5, 0xEA, 0xFA, 0xBC, 0x2F,
         0x23, 0x26, 0x80, 0xFF, 0xEA, 0x09, 0x3A, 0x1F,
         0x9F, 0xFE, 0x26, 0xDD, 0xD0, 0xFA, 0xC7, 0x2E,
         0x4D, 0x1F, 0xFB, 0xD2, 0xA5, 0xB1, 0x12, 0xD6,
         0x1F, 0xF8, 0xCC, 0x0A, 0x52, 0x24, 0x58, 0x11,
         0x01, 0xD3, 0xAC, 0xD1, 0x2E, 0x17, 0x6A, 0x42,
         0x88, 0x3C, 0xBE, 0x1C, 0x10, 0xE4, 0xC0, 0xC8,
         0xEC, 0xFB, 0x88, 0x2B, 0xCE, 0x04, 0x5F, 0xCA,
         0x30, 0xDA, 0x22, 0x16, 0xB1, 0x2B, 0x04, 0x13,
         0x8A, 0xE6, 0xC6, 0xC3, 0x96, 0xDB, 0xD9, 0x22,
         0x2A, 0x3C, 0x78, 0x08, 0x4D, 0xD9, 0x3A, 0xF0,
         0x70, 0x24, 0xAE, 0x26, 0xE4, 0xF7, 0x6B, 0xD7,
         0xF0, 0xE5, 0xDF, 0x0C, 0x2C, 0x22, 0x5E, 0x08,
         0x5E, 0xD6, 0x2C, 0xCE, 0x43, 0x02, 0x1F, 0x2F,
         0x70, 0x23, 0x07, 0x09, 0x2B, 0x10, 0x70, 0x15,
         0xCD, 0xF3, 0x0A, 0xEB, 0x9B, 0x21, 0xD9, 0x31,
         0xF9, 0xE4, 0xA0, 0x9D, 0xFA, 0xA9, 0xE2, 0xE7,
         0x12, 0x29, 0x6B, 0x3E, 0xEB, 0x0A, 0x6B, 0xCD,
         0xC6, 0xE5, 0xF3, 0x35, 0xB8, 0x48, 0xAC, 0x0D,
         0xB7, 0xE9, 0xD5, 0x10, 0x31, 0x3B, 0x05, 0x1D,
         0xD6, 0xD7, 0x6A, 0xBA, 0xDA, 0xD5, 0xDF, 0x04,
         0xA7, 0x17, 0x9C, 0xF8, 0x5D, 0xD5, 0x96, 0xE9,
         0x6B, 0x15, 0xA9, 0x10, 0x7F, 0xEF, 0x10, 0xF5,
         0x19, 0x20, 0x60, 0x37, 0x5F, 0x18, 0x57, 0xDB,
         0xB8, 0xC1, 0xB9, 0xF4, 0xC0, 0x33, 0xAC, 0x2A,
         0xD0, 0xF8, 0x21, 0xF0, 0xC6, 0x08, 0xF9, 0x0E,
         0x5B, 0xFB, 0x95, 0xE8, 0x47, 0xEA, 0x22, 0x07,
         0xA0, 0x19, 0x8B, 0xF3, 0x69, 0xB9, 0x9D, 0xBF,
         0x4D, 0x01, 0xA5, 0x25, 0xAF, 0x15, 0x85, 0x0E,
         0x36, 0x1A, 0x15, 0x10, 0x63, 0x05, 0x49, 0x18,
         0x5D, 0x15, 0xFA, 0xEE, 0x96, 0xF0, 0xA7, 0x18,
         0x21, 0x08, 0x67, 0xD0, 0x70, 0xD8, 0xFB, 0x06,
         0x43, 0xFC, 0xF4, 0xDA, 0xDC, 0xF9, 0x52, 0x2A,
         0x3D, 0x24, 0x38, 0x06, 0x24, 0xEF, 0xE2, 0xD5,
         0x92, 0xD9, 0xF7, 0x01, 0xC7, 0x0A, 0xD1, 0xF5,
         0x4C, 0x11, 0x22, 0x47, 0x0B, 0x37, 0xC7, 0xFC,
         0x69, 0xF8, 0x2C, 0x14, 0x8F, 0xFF, 0xFB, 0xDB,
         0xC7, 0xF4, 0xF7, 0x14, 0x44, 0xEB, 0x9C, 0xBB,
         0xEC, 0xD4, 0x08, 0xF4, 0xD7, 0xDE, 0x1E, 0xDB,
         0x48, 0x1A, 0x58, 0x5D, 0xA9, 0x5F, 0xEF, 0x2A,
         0xAC, 0xFD, 0x7D, 0xFB, 0x83, 0xFD, 0xFC, 0xE7,
         0xFB, 0xE7, 0xC4, 0x0B, 0x39, 0x16, 0xF7, 0xED,
         0x88, 0xC8, 0x93, 0xCE, 0x07, 0xF1, 0xBC, 0x0E,
         0x92, 0x19, 0xE7, 0x14, 0xDC, 0x05, 0x63, 0xF6,
         0xD3, 0x01, 0x8D, 0x2C, 0x1C, 0x3D, 0x6F, 0x06,
         0x14, 0xCD, 0x3F, 0xE5, 0x7B, 0x16, 0x0B, 0x03,
         0x61, 0xD1, 0xAC, 0xD8, 0x68, 0x08, 0xDC, 0x27,
         0x65, 0x2E, 0x85, 0x14, 0xB4, 0xE3, 0xDC, 0xDB,
         0x08, 0x09, 0x1A, 0x1B, 0xB6, 0xF6, 0x16, 0xE2,
         0x08, 0xFC, 0x02, 0x11, 0xE5, 0x00, 0xAD, 0xE8,
         0xFD, 0xEA, 0x75, 0x0F, 0xCD, 0x37, 0xA1, 0x2F,
         0x89, 0xF3, 0xBC, 0xD0, 0x2F, 0xF7, 0xC8, 0x1C,
         0xEE, 0xFD, 0x30, 0xDA, 0x81, 0xF0, 0x48, 0x01,
         0xAC, 0xDA, 0x66, 0xD0, 0xE5, 0x1B, 0xC5, 0x5B,
         0x9D, 0x30, 0xAF, 0xDB, 0x27, 0xD5, 0xA1, 0x16,
         0x80, 0x32, 0x67, 0x08, 0xBA, 0xE1, 0x53, 0xE6,
         0xEA, 0xF5, 0xEE, 0xF7, 0xE8, 0xEE, 0x19, 0xE3,
         0x2E, 0xE2, 0xF0, 0xEB, 0xC7, 0xFA, 0xFB, 0x17,
         0xA6, 0x35, 0x96, 0x2B, 0xEB, 0x06, 0x7A, 0xFE,
         0x06, 0x12, 0x29, 0x14, 0x45, 0xFE, 0xE1, 0xEF,
         0xE8, 0xF2, 0x0F, 0xEA, 0xB8, 0xCF, 0x6D, 0xD4,
         0x91, 0x00, 0x88, 0x16, 0x11, 0x03, 0xD5, 0xF6,
         0x44, 0x0A, 0xF4, 0x21, 0x2A, 0x1C, 0x1E, 0xFA,
         0x51, 0xED, 0xE3, 0x0F, 0x0C, 0x23, 0xC9, 0xFF,
         0x3D, 0xD5, 0xFD, 0xD7, 0xD4, 0xF8, 0x79, 0x10,
         0x64, 0x14, 0x03, 0x09, 0xB3, 0xFF, 0x5B, 0x0C,
         0xCE, 0x16, 0x91, 0xFC, 0x60, 0xE3, 0x95, 0xFB,
         0x37, 0x17, 0xB0, 0x04, 0xD1, 0xEF, 0x4E, 0xFD,
         0x8B, 0x03, 0x09, 0xE2, 0xA2, 0xC3, 0xDF, 0xE4,
         0x5A, 0x28, 0x64, 0x3A, 0x97, 0x1A, 0x6B, 0x0B,
         0x44, 0x07, 0x3F, 0xF4, 0xAD, 0xFB, 0x7E, 0x1A,
         0xCC, 0x19, 0x19, 0x0A, 0x5E, 0xFF, 0xB0, 0xD9,
         0x5F, 0xC1, 0xA1, 0xEC, 0x22, 0x13, 0xD2, 0x00,
         0x20, 0xF8, 0xD9, 0x0A, 0xBA, 0x00, 0xF9, 0xEC,
         0x21, 0x0B, 0xD1, 0x33, 0xAA, 0x13, 0x4C, 0xD4,
         0x89, 0xE4, 0x13, 0x2B, 0xA6, 0x30, 0x61, 0xF2,
         0xA2, 0xCD, 0xAF, 0xE4, 0xF3, 0x11, 0x4C, 0x24,
         0xF2, 0x10, 0x04, 0x05, 0x10, 0x0E, 0xF8, 0xFE,
         0x00, 0xE2, 0x54, 0xE6, 0xB9, 0xF6, 0x40, 0xF1,
         0x06, 0xE4, 0xF1, 0xE2, 0xFC, 0xFD, 0x44, 0x2A,
         0x11, 0x2C, 0x60, 0xF9, 0xD2, 0xDE, 0xD0, 0xFD,
         0x15, 0x28, 0x42, 0x35, 0x8E, 0x15, 0x44, 0xD6,
         0x94, 0xBE, 0xCF, 0xFC, 0xBC, 0x45, 0xB7, 0x34,
         0x27, 0xE5, 0x61, 0xC1, 0x67, 0xDD, 0x47, 0xF7,
         0x22, 0xF3, 0x15, 0xF2, 0xE2, 0x03, 0xBF, 0x11,
         0x0E, 0x09, 0xD3, 0xFE, 0xCE, 0x0F, 0x2F, 0x1D,
         0x77, 0x04, 0x02, 0xEF, 0x6C, 0xFD, 0x7F, 0x0A,
         0xAB, 0x00, 0x73, 0xFD, 0x87, 0x09, 0x55, 0x10,
         0x48, 0xFF, 0x1C, 0xE1, 0x92, 0xE5, 0x3A, 0x0F,
         0xAC, 0x1C, 0x65, 0x03, 0xC4, 0xF8, 0x6F, 0xF5,
         0x1F, 0xDE, 0x25, 0xE0, 0xEC, 0x12, 0x3D, 0x2D,
         0x9D, 0x00, 0xED, 0xD8, 0xEC, 0xF9, 0x1A, 0x26,
         0x7F, 0x19, 0xA0, 0xFB, 0x45, 0xF5, 0x1C, 0xFA,
         0xBB, 0x11, 0x0B, 0x2D, 0x66, 0x0D, 0xF5, 0xD3,
         0xCF, 0xE2, 0xE8, 0x0F, 0x61, 0xFE, 0x9C, 0xDF,
         0x56, 0xF8, 0xDD, 0x11, 0xC7, 0xFE, 0xE1, 0xEF,
         0xD0, 0x00, 0x8E, 0x0D, 0x69, 0x09, 0xD1, 0x08,
         0xCA, 0x08, 0x44, 0xFD, 0xA2, 0xFD, 0x33, 0x12,
         0xB2, 0x0B, 0x71, 0xEB, 0xA9, 0xF0, 0x39, 0x0F,
         0xA4, 0x11, 0xC1, 0x03, 0xC8, 0xF5, 0xE3, 0xDE,
         0x6A, 0xE5, 0x46, 0x11, 0x8F, 0x14, 0x47, 0xE8,
         0xDC, 0xE4, 0x69, 0x12, 0xFC, 0x22, 0x4D, 0x03,
         0x21, 0xF1, 0x25, 0x0E, 0x94, 0x24, 0x58, 0x04,
         0xFD, 0xDD, 0xC1, 0xE7, 0x08, 0x0A, 0x8B, 0x16,
         0x72, 0xF9, 0x40, 0xCD, 0x42, 0xDD, 0x22, 0x24,
         0xEF, 0x29, 0x33, 0xE2, 0xEB, 0xCF, 0x10, 0x10,
         0x88, 0x3B, 0x67, 0x23, 0xFA, 0xF5, 0x4B, 0xE2,
         0x42, 0xE7, 0xD1, 0xF2, 0xBF, 0x0E, 0xE0, 0x2C,
         0xDA, 0x13, 0x91, 0xD3, 0xA4, 0xC8, 0x71, 0xFE,
         0x7C, 0x25, 0x8A, 0x15, 0x27, 0xF4, 0x1C, 0xF5,
         0xDB, 0x06, 0xE2, 0xF0, 0x5F, 0xD7, 0x55, 0x00,
         0x01, 0x32, 0xC7, 0x19, 0xAC, 0xEC, 0xC7, 0xF1,
         0x03, 0x0C, 0x71, 0x0D, 0x01, 0x01, 0x1D, 0x01,
         0xF4, 0x02, 0x58, 0xF5, 0x99, 0xF0, 0xBE, 0x03,
         0xDC, 0x0D, 0x60, 0x07, 0x59, 0x03, 0xCA, 0xEE,
         0xDA, 0xD0, 0xDA, 0xE3, 0x23, 0x19, 0x4C, 0x25,
         0x8F, 0x05, 0xC4, 0xF0, 0x60, 0xFB, 0x48, 0x0F,
         0xE0, 0x11, 0xEA, 0x0C, 0xE2, 0x17, 0xAB, 0x16,
         0xC8, 0xE7, 0xDC, 0xC1, 0x3C, 0xED, 0x3F, 0x3C,
         0x67, 0x35, 0x3A, 0xD3, 0x49, 0xA5, 0x88, 0xE9,
         0xF5, 0x2E, 0x37, 0x2F, 0x25, 0x19, 0xC4, 0xFA,
         0x23, 0xD7, 0x5B, 0xE7, 0x01, 0x21, 0x88, 0x2F,
         0x3B, 0x0A, 0x73, 0xE3, 0xFA, 0xD1, 0x22, 0xE9,
         0xDE, 0x27, 0x42, 0x4A, 0x6E, 0x17, 0x3F, 0xC4,
         0x25, 0xBD, 0x5C, 0x0E, 0xE9, 0x46, 0x65, 0x1B,
         0x7F, 0xCD, 0x33, 0xC2, 0xB8, 0xFB, 0xA1, 0x2F,
         0xBB, 0x1D, 0xCE, 0xDC, 0x08, 0xC5, 0x26, 0xF7,
         0xF4, 0x3C, 0xCB, 0x56, 0x50, 0x23, 0xC5, 0xC9,
         0x98, 0xB5, 0x4D, 0xF6, 0xE4, 0x1C, 0xE9, 0x06,
         0x04, 0xFD, 0x66, 0x03, 0x75, 0xF4, 0x86, 0xF1,
         0x31, 0x16, 0xB4, 0x29, 0xDE, 0x00, 0x79, 0xCC,
         0x61, 0xD8, 0x81, 0x1E, 0x1E, 0x3D, 0x67, 0x05,
         0xC3, 0xC7, 0x60, 0xD3, 0x86, 0x01, 0x03, 0x12,
         0x28, 0x0E, 0x8B, 0x0E, 0x87, 0x07, 0x92, 0xF9,
         0xA0, 0xFA, 0x52, 0x07, 0x40, 0xFE, 0x9B, 0xE6,
         0x42, 0xFA, 0xEB, 0x33, 0x4B, 0x34, 0xCE, 0xE1,
         0xD8, 0xA6, 0xA9, 0xD1, 0x00, 0x26, 0xDF, 0x3E,
         0x28, 0x0C, 0x90, 0xDA, 0x60, 0xEB, 0x06, 0x18,
         0x88, 0x10, 0x62, 0xE1, 0xFE, 0xE2, 0x8B, 0x1F,
         0xDD, 0x32, 0xC7, 0xF4, 0xF8, 0xCD, 0x64, 0xFC,
         0x23, 0x1B, 0xF7, 0xF2, 0xD6, 0xE8, 0x1E, 0x1B,
         0xF6, 0x20, 0x97, 0xF2, 0xFF, 0xEE, 0x89, 0x19,
         0xE1, 0x23, 0x4B, 0xFB, 0xF3, 0xD0, 0x26, 0xD7,
         0x8F, 0x07, 0xD7, 0x21, 0x2B, 0x01, 0xF9, 0xDD,
         0x71, 0xF2, 0xAF, 0x16, 0x2B, 0x08, 0xAB, 0xE4,
         0x72, 0xF7, 0x3A, 0x32, 0xDD, 0x3E, 0xC9, 0x07,
         0xFF, 0xD0, 0x29, 0xD9, 0x07, 0x0E, 0xC1, 0x22,
         0x1E, 0x01, 0x52, 0xF0, 0xD5, 0x0C, 0x77, 0x0C,
         0x92, 0xD2, 0x6E, 0xB4, 0xC9, 0xE9, 0xE5, 0x33,
         0x0C, 0x42, 0xC6, 0x18, 0xED, 0xEC, 0x60, 0xE5,
         0x8E, 0x04, 0xCA, 0x1F, 0x9D, 0x07, 0x53, 0xDD,
         0x2E, 0xF3, 0x7A, 0x2C, 0xA8, 0x15, 0xB8, 0xC5,
         0x62, 0xCF, 0x74, 0x30, 0x92, 0x48, 0x27, 0xF5,
         0xCD, 0xBD, 0xEC, 0xDC, 0xE3, 0x03, 0x1E, 0x0E,
         0xA5, 0x1D, 0xCA, 0x23, 0x66, 0x02, 0x52, 0xE1,
         0x95, 0xEA, 0x3B, 0x05, 0x78, 0x0A, 0xE0, 0xF9,
         0x95, 0xF1, 0x7B, 0x05, 0x39, 0x1B, 0x69, 0x10,
         0xF2, 0xF7, 0xEA, 0xF2, 0x45, 0xFE, 0x17, 0x0D,
         0xB4, 0x0B, 0xEE, 0xEF, 0xA7, 0xE7, 0xB4, 0x0A,
         0xAC, 0x15, 0xEA, 0xE1, 0x48, 0xBE, 0x3B, 0xEC,
         0x14, 0x3A, 0x6D, 0x4E, 0xC4, 0x13, 0x8F, 0xD3,
         0x5B, 0xDA, 0x4C, 0x0E, 0x13, 0x1E, 0xD1, 0xF9,
         0xCC, 0xDA, 0xF0, 0xE7, 0x32, 0x0C, 0x66, 0x1F,
         0xD7, 0x19, 0x59, 0x07, 0x99, 0xE9, 0x98, 0xD7,
         0x24, 0xF2, 0x0D, 0x15, 0x1F, 0x0C, 0xEF, 0xFF,
         0x69, 0x17, 0x86, 0x11, 0x24, 0xD5, 0x2D, 0xC7,
         0x91, 0x12, 0x84, 0x42, 0x9E, 0x0D, 0xBE, 0xC7,
         0xB5, 0xC3, 0x35, 0xF4, 0xA9, 0x2B, 0x59, 0x41,
         0x6A, 0x1E, 0x88, 0xEC, 0x29, 0xEA, 0x9B, 0x06,
         0x64, 0x0C, 0xBC, 0xF9, 0xDC, 0xEA, 0x60, 0xE7,
         0xA1, 0xF6, 0xBC, 0x13, 0x94, 0x11, 0x8D, 0xE2,
         0x6F, 0xC8, 0xB2, 0xED, 0x1C, 0x20, 0xD6, 0x27,
         0x6B, 0x16, 0xA5, 0x0C, 0x3C, 0x0C, 0x66, 0x11,
         0x0C, 0x14, 0x9C, 0xFE, 0xD1, 0xE0, 0x49, 0xDE,
         0x35, 0xEF, 0x06, 0x01, 0xF3, 0x0D, 0xCE, 0x0C,
         0xEF, 0xFA, 0xB3, 0xEA, 0x38, 0xED, 0x08, 0xF8,
         0x59, 0x01, 0x78, 0x12, 0xC0, 0x2B, 0x1F, 0x2A,
         0xC8, 0xF9, 0x94, 0xD2, 0x78, 0xE9, 0x1D, 0x13,
         0x04, 0x0B, 0x16, 0xE3, 0xD4, 0xE4, 0xDE, 0x1F,
         0x45, 0x48, 0xED, 0x1D, 0x1A, 0xD8, 0x48, 0xDA,
         0x46, 0x14, 0x09, 0x22, 0x32, 0xE6, 0x4F, 0xAF,
         0xEA, 0xCB, 0xCB, 0x1B, 0x35, 0x39, 0x53, 0x0C,
         0x0E, 0xE0, 0x73, 0xE1, 0xEA, 0xFE, 0x53, 0x1E,
         0xAA, 0x2A, 0xB0, 0x22, 0x3B, 0x1E, 0xFE, 0x1E,
         0x21, 0x0C, 0x73, 0xE6, 0xAB, 0xCF, 0xA3, 0xD9,
         0xA3, 0xF6, 0x9E, 0x0B, 0x37, 0x00, 0x20, 0xDC,
         0xE3, 0xD2, 0x93, 0xFA, 0x82, 0x13, 0x5C, 0xFC,
         0xA0, 0xFE, 0x1E, 0x32, 0x07, 0x3B, 0xD3, 0x03,
         0x60, 0xE3, 0x52, 0xF1, 0x3A, 0xFF, 0xF2, 0x06,
         0x6B, 0x16, 0x27, 0x1D, 0xCB, 0x09, 0x5C, 0xE5,
         0xC5, 0xD0, 0xCF, 0xE3, 0x2D, 0x0D, 0xA2, 0x26,
         0x9A, 0x13, 0x93, 0xD6, 0x59, 0xAD, 0xC7, 0xD6,
         0xC8, 0x2A, 0xE5, 0x47, 0x20, 0x15, 0x36, 0xD3,
         0xAF, 0xCD, 0xAF, 0x0C, 0xC3, 0x49, 0x3B, 0x41,
         0x59, 0x05, 0x0B, 0xE0, 0x5C, 0xEE, 0xB0, 0x04,
         0xC5, 0xF8, 0x80, 0xE3, 0xFB, 0xE9, 0xDA, 0xFE,
         0x6E, 0x0A, 0x81, 0x03, 0xED, 0xE5, 0xCD, 0xD5,
         0xF2, 0xFD, 0x47, 0x2E, 0x9B, 0x1D, 0x38, 0xED,
         0x55, 0xEF, 0xF0, 0x27, 0xC8, 0x48, 0x0C, 0x1B,
         0x65, 0xCF, 0xF3, 0xB8, 0x11, 0xD7, 0x77, 0xF7,
         0x8B, 0x0F, 0x6F, 0x22, 0x39, 0x26, 0x02, 0x14,
         0x70, 0xEE, 0x19, 0xCC, 0x3F, 0xD3, 0x9E, 0x0A,
         0x41, 0x4A, 0xF0, 0x58, 0xE9, 0x11, 0xE8, 0xAB,
         0xA9, 0x9E, 0xC2, 0xF2, 0x4C, 0x30, 0xF3, 0x1D,
         0x78, 0xF4, 0xD3, 0xE7, 0xF1, 0xFC, 0x3D, 0x1F,
         0x03, 0x24, 0x8B, 0xFB, 0x28, 0xD6, 0xEE, 0xE4,
         0x8A, 0x19, 0x70, 0x35, 0x19, 0x16, 0xA9, 0xD9,
         0x49, 0xB7, 0x73, 0xD4, 0xCF, 0x29, 0x6F, 0x68,
         0xE2, 0x45, 0xB1, 0xEC, 0x1B, 0xBB, 0x9B, 0xC3,
         0xCF, 0xEB, 0x77, 0x1E, 0x6E, 0x2F, 0x48, 0x0B,
         0x3B, 0xE1, 0x48, 0xDC, 0xF7, 0xF2, 0x41, 0x07,
         0x1F, 0x01, 0x06, 0xEA, 0xA8, 0xED, 0xA1, 0x12,
         0x1A, 0x2C, 0xB8, 0x27, 0xD7, 0x1F, 0xE8, 0x1F,
         0x1A, 0x13, 0x8A, 0xEE, 0x25, 0xD7, 0x98, 0xE4,
         0x4B, 0xED, 0x49, 0xDB, 0xDF, 0xDF, 0x45, 0x0A,
         0xD4, 0x1D, 0x90, 0x07, 0xE5, 0xF0, 0x53, 0xEF,
         0x52, 0xFE, 0xD2, 0x10, 0xA6, 0x0D, 0x36, 0xFA,
         0x62, 0xFC, 0xC6, 0x15, 0x25, 0x25, 0xF7, 0x1E,
         0x4E, 0x07, 0x18, 0xE5, 0xA3, 0xD7, 0xA3, 0xF5,
         0x32, 0x1B, 0x4B, 0x15, 0x7B, 0xEE, 0xBB, 0xDE,
         0xD9, 0xF8, 0xDB, 0x11, 0x9C, 0x05, 0x8E, 0xE2,
         0xDA, 0xD0, 0x4D, 0xE9, 0x42, 0x18, 0x8B, 0x28,
         0xCD, 0x0B, 0x16, 0xF6, 0x4D, 0x09, 0x88, 0x26,
         0x76, 0x29, 0xAF, 0x12, 0xC3, 0xF5, 0x29, 0xE6,
         0x90, 0xE7, 0x8D, 0xEA, 0xA1, 0xF0, 0x15, 0x0E,
         0xA4, 0x27, 0xBC, 0x07, 0xF7, 0xC9, 0xB0, 0xC4,
         0x9C, 0x01, 0xE1, 0x30, 0x25, 0x22, 0x4D, 0xFC,
         0xF7, 0xF3, 0xEB, 0x06, 0x85, 0x14, 0x2C, 0x0A,
         0xC7, 0xEB, 0x4F, 0xD7, 0xCA, 0xEB, 0xC8, 0x10,
         0x54, 0x19, 0xFD, 0x10, 0x5C, 0x11, 0x13, 0x04,
         0x78, 0xEB, 0x82, 0xF7, 0x2B, 0x21, 0x36, 0x26,
         0x51, 0xF4, 0x4F, 0xC2, 0x3B, 0xC8, 0x41, 0xFE,
         0x71, 0x21, 0x73, 0x09, 0xAB, 0xE1, 0xB7, 0xE4,
         0x58, 0x0C, 0xCF, 0x2A, 0xB4, 0x28, 0x3E, 0x11,
         0xEC, 0xFE, 0x81, 0x03, 0xAB, 0x10, 0xA7, 0x04,
         0xE5, 0xDC, 0x4C, 0xC6, 0x74, 0xDB, 0x1E, 0xF8,
         0xFC, 0xF8, 0x5A, 0xF7, 0xBA, 0x14, 0x97, 0x38,
         0xE9, 0x34, 0x95, 0x0B, 0x80, 0xE9, 0x38, 0xE7,
         0x8E, 0xFA, 0x8F, 0x0F, 0x01, 0x13, 0x15, 0x00,
         0xA7, 0xE8, 0x54, 0xDA, 0xD9, 0xD3, 0x34, 0xDB,
         0xC6, 0xF4, 0xF8, 0x0F, 0x18, 0x1D, 0x98, 0x1C,
         0xE3, 0x12, 0xFF, 0x0B, 0x85, 0x17, 0x62, 0x29,
         0x1A, 0x20, 0x4F, 0xF8, 0x4C, 0xDA, 0xD0, 0xE1,
         0x4D, 0xF2, 0xFD, 0xE5, 0xFF, 0xD0, 0xFC, 0xE1,
         0x32, 0x13, 0x65, 0x2E, 0x16, 0x17, 0xE8, 0xE9,
         0xE0, 0xD7, 0xBC, 0xF3, 0x79, 0x25, 0xE1, 0x44,
         0xEB, 0x36, 0xCC, 0x04, 0x29, 0xDF, 0xBC, 0xEA,
         0x6A, 0x06, 0xDC, 0xF4, 0x14, 0xC3, 0xDB, 0xC3,
         0x56, 0x0E, 0x18, 0x53, 0xD2, 0x48, 0x2C, 0xFE,
         0x89, 0xB8, 0x95, 0xB9, 0xC1, 0x04, 0x31, 0x43,
         0xFB, 0x29, 0x67, 0xEA, 0x44, 0xDE, 0x51, 0x02,
         0xFF, 0x18, 0x78, 0x08, 0x7A, 0xE5, 0x35, 0xD9,
         0xE2, 0xFF, 0xC8, 0x3C, 0x91, 0x4E, 0xF0, 0x18,
         0xFB, 0xC0, 0x4B, 0x8E, 0x3F, 0xB9, 0x98, 0x2C,
         0x53, 0x7B, 0x5F, 0x4F, 0xF2, 0xD6, 0xF2, 0x8E,
         0x98, 0xBA, 0x83, 0x2C, 0xC5, 0x71, 0x72, 0x3A,
         0x67, 0xC2, 0x5A, 0xA1, 0x12, 0x02, 0x77, 0x5E,
         0x46, 0x3D, 0xDF, 0xCC, 0xC5, 0x8D, 0x6F, 0xBA,
         0xA3, 0x24, 0x67, 0x67, 0xBB, 0x3F, 0x71, 0xDD,
         0x59, 0xB2, 0xE4, 0xE0, 0x2B, 0x1F, 0x3C, 0x2D,
         0x71, 0x19, 0x5D, 0x0B, 0xA4, 0x07, 0x0D, 0xF8,
         0x00, 0xDD, 0xBC, 0xDE, 0x74, 0x0C, 0xC5, 0x29,
         0xC2, 0xFB, 0x93, 0xB0, 0xA6, 0xAF, 0x30, 0x05,
         0x52, 0x4C, 0x93, 0x3F, 0x56, 0x0C, 0x44, 0xF8,
         0x12, 0x03, 0xF5, 0x0A, 0x1A, 0x02, 0x27, 0xEF,
         0xDE, 0xE2, 0xC5, 0xEE, 0x3B, 0x09, 0x16, 0x16,
         0xC2, 0x0B, 0x9A, 0xF6, 0x3F, 0xE7, 0x25, 0xE8,
         0x58, 0xF4, 0x6F, 0xFD, 0x31, 0x08, 0x9D, 0x1F,
         0x57, 0x2D, 0x9A, 0x18, 0x82, 0xF9, 0x84, 0xF2,
         0xF0, 0xF3, 0x45, 0xE0, 0xE7, 0xCA, 0xA5, 0xDF,
         0xF7, 0x18, 0xA5, 0x39, 0x60, 0x20, 0xFD, 0xF6,
         0xE4, 0xEC, 0x13, 0xF9, 0x6A, 0x04, 0x2B, 0x0D,
         0xBC, 0x10, 0x1F, 0x0D, 0xB1, 0x0B, 0x48, 0x09,
         0xB7, 0xF5, 0x6E, 0xD9, 0x68, 0xD7, 0x1A, 0xFB,
         0x06, 0x1D, 0x18, 0x10, 0x45, 0xE4, 0x24, 0xD6,
         0x77, 0xF9, 0xE7, 0x25, 0x35, 0x34, 0x69, 0x1F,
         0x62, 0xF8, 0x3F, 0xDD, 0x98, 0xE8, 0xCE, 0x0C,
         0xDD, 0x1E, 0x3F, 0x0B, 0x66, 0xF3, 0xEC, 0xF6,
         0x35, 0x01, 0xFF, 0xF5, 0xA2, 0xE7, 0xCC, 0xF2,
         0x18, 0x0C, 0x37, 0x14, 0xDC, 0x03, 0x20, 0xF2,
         0xD4, 0xF7, 0x36, 0x0B, 0xE2, 0x07, 0x40, 0xEC,
         0x3F, 0xE6, 0xFC, 0x07, 0x45, 0x22, 0xA3, 0x12,
         0xEC, 0xFC, 0xEF, 0x04, 0x45, 0x0E, 0xFA, 0xFC,
         0xE3, 0xE8, 0xF3, 0xEA, 0x5F, 0xFD, 0x96, 0x0D,
         0xC5, 0x05, 0x24, 0xE6, 0x50, 0xDC, 0x23, 0x09,
         0x4C, 0x40, 0xE8, 0x37, 0x35, 0xEC, 0x7C, 0xB0,
         0x54, 0xCE, 0x78, 0x1E, 0x07, 0x3D, 0xE8, 0x16,
         0x4D, 0xEF, 0x06, 0xEB, 0x65, 0xF3, 0xDA, 0xF5,
         0x2C, 0xF9, 0x6B, 0x02, 0x64, 0x0C, 0xD2, 0x0F,
         0xC4, 0x05, 0x7B, 0xEF, 0x77, 0xE6, 0x18, 0x06,
         0xDC, 0x30, 0x09, 0x2A, 0x68, 0xF8, 0xA8, 0xDE,
         0x8D, 0xEF, 0x4F, 0xFE, 0xC0, 0xEF, 0x37, 0xDD,
         0xA8, 0xEC, 0xD2, 0x16, 0xBB, 0x28, 0x28, 0x10,
         0x12, 0xF8, 0x4D, 0xFA, 0xE5, 0xFC, 0x2D, 0xF3,
         0x58, 0xF4, 0x80, 0x0B, 0x7F, 0x21, 0x7D, 0x15,
         0x85, 0xE3, 0x2B, 0xC1, 0x05, 0xEB, 0xCA, 0x3E,
         0xC0, 0x52, 0x38, 0x0E, 0x2F, 0xD0, 0x1B, 0xDD,
         0x26, 0x04, 0x8F, 0x00, 0x02, 0xDF, 0x3F, 0xD8,
         0x72, 0xFC, 0x73, 0x25, 0x46, 0x25, 0xAE, 0xF9,
         0x0A, 0xD8, 0x84, 0xEF, 0x22, 0x1E, 0x78, 0x1F,
         0x5D, 0xFF, 0xC6, 0xFF, 0x5E, 0x1B, 0xE9, 0x14,
         0xC4, 0xED, 0xC9, 0xDE, 0x42, 0xF8, 0x5E, 0x14,
         0xF1, 0x0E, 0x70, 0xEC, 0x97, 0xD5, 0x40, 0xE2,
         0x83, 0xFC, 0xA3, 0x0B, 0x6C, 0x13, 0x91, 0x18,
         0xBC, 0x14, 0xD8, 0x06, 0xED, 0xF3, 0xA5, 0xE7,
         0xC6, 0xF3, 0x82, 0x15, 0x4B, 0x2D, 0x3A, 0x22,
         0x33, 0xFA, 0xFD, 0xD0, 0x92, 0xBF, 0x97, 0xCF,
         0xF4, 0xF9, 0xED, 0x25, 0x91, 0x34, 0x64, 0x23,
         0xDC, 0x0E, 0xC4, 0x03, 0xCF, 0xF7, 0x5D, 0xEA,
         0x77, 0xE6, 0x14, 0xF8, 0x5D, 0x1D, 0xAB, 0x30,
         0x4F, 0x0D, 0x2B, 0xCF, 0x7D, 0xB5, 0x73, 0xD5,
         0x64, 0x0F, 0x0B, 0x31, 0xE3, 0x1D, 0x8B, 0xEE,
         0x2F, 0xD9, 0xD7, 0xF6, 0x09, 0x2D, 0x3F, 0x48,
         0x1F, 0x2C, 0xFC, 0xF1, 0xF9, 0xCA, 0xE5, 0xCE,
         0x84, 0xF5, 0x63, 0x26, 0x45, 0x3C, 0x6E, 0x1A,
         0x88, 0xD6, 0x20, 0xB1, 0xB8, 0xCB, 0xC9, 0xFF,
         0x22, 0x18, 0x33, 0x10, 0x2E, 0x02, 0xA9, 0xFF,
         0x52, 0x08, 0xDC, 0x0B, 0x93, 0xFF, 0x4B, 0xFB,
         0x4B, 0x19, 0x40, 0x3C, 0xD3, 0x30, 0xCA, 0xF9,
         0xAF, 0xCB, 0xD2, 0xC8, 0x29, 0xE5, 0xF4, 0x01,
         0x83, 0x0E, 0xE8, 0x09, 0xA3, 0xFB, 0x0C, 0xF2,
         0x1F, 0xF4, 0x36, 0xF6, 0xFA, 0xF1, 0x03, 0xFE,
         0xA6, 0x25, 0x3D, 0x41, 0x48, 0x29, 0x5A, 0xF5,
         0xFB, 0xD3, 0x45, 0xCE, 0x79, 0xDD, 0x7E, 0x00,
         0x83, 0x20, 0xB7, 0x1E, 0x94, 0x02, 0xE2, 0xEB,
         0x01, 0xEF, 0x7E, 0x09, 0x4D, 0x26, 0x9A, 0x29,
         0xDC, 0x0D, 0x75, 0xEB, 0xBE, 0xDB, 0x68, 0xE0,
         0x2A, 0xEC, 0x29, 0xF6, 0x36, 0xFF, 0xA2, 0x07,
         0xAE, 0x09, 0x62, 0xFE, 0x3D, 0xEC, 0x5C, 0xEE,
         0x55, 0x14, 0x2B, 0x39, 0xE7, 0x2A, 0x94, 0xFC,
         0x31, 0xEB, 0x6F, 0xFB, 0xE3, 0x03, 0xE8, 0xFB,
         0x0F, 0xF6, 0xE1, 0xF6, 0x91, 0xFD, 0x61, 0x03,
         0x85, 0xF4, 0x1B, 0xDA, 0x5E, 0xDD, 0xDA, 0x02,
         0x02, 0x22, 0xAE, 0x25, 0x17, 0x18, 0x97, 0x02,
         0xC8, 0xEE, 0xF6, 0xEC, 0x8C, 0xFD, 0x79, 0x08,
         0x30, 0x01, 0x72, 0xF8, 0x44, 0xFC, 0x98, 0x07,
         0x23, 0x0F, 0xAC, 0x09, 0x90, 0xF8, 0x42, 0xF3,
         0xD2, 0x04, 0x0D, 0x10, 0x29, 0x00, 0xA0, 0xE9,
         0x75, 0xE1, 0xBA, 0xE9, 0x4E, 0x04, 0xF5, 0x22,
         0x34, 0x20, 0xB1, 0xFA, 0x70, 0xE2, 0x87, 0xF0,
         0x4F, 0x0A, 0x10, 0x14, 0xE6, 0x0F, 0x10, 0x0B,
         0x9F, 0x08, 0x10, 0x01, 0xB3, 0xF0, 0x9E, 0xE0,
         0xC7, 0xDE, 0x6E, 0xF2, 0xA8, 0x15, 0x51, 0x2F,
         0x7D, 0x21, 0xA3, 0xED, 0x1E, 0xC2, 0xD8, 0xD3,
         0x97, 0x20, 0x8D, 0x5F, 0x0C, 0x49, 0x5F, 0xEB,
         0x18, 0x9E, 0xF4, 0xA3, 0x8E, 0xEF, 0xE9, 0x37,
         0xBF, 0x3D, 0xFE, 0x0B, 0x93, 0xE6, 0x18, 0xF0,
         0xA0, 0x08, 0xC1, 0x0B, 0xF9, 0xFD, 0xB5, 0xF8,
         0xC1, 0x04, 0xBB, 0x16, 0xA4, 0x1C, 0x33, 0x0B,
         0xB8, 0xE7, 0x2F, 0xD0, 0x7F, 0xDD, 0x9A, 0x00,
         0xCD, 0x17, 0x12, 0x17, 0x96, 0x06, 0x58, 0xF0,
         0x91, 0xE3, 0x7A, 0xEF, 0x9D, 0x0E, 0x41, 0x26,
         0xC9, 0x20, 0x39, 0x07, 0x28, 0xFA, 0xF3, 0x06,
         0xD0, 0x13, 0x65, 0x03, 0xC4, 0xDA, 0xC3, 0xBC,
         0x3C, 0xCA, 0x6A, 0xFF, 0xF3, 0x31, 0xD3, 0x3D,
         0x0E, 0x23, 0x72, 0xF6, 0x79, 0xCF, 0x8E, 0xC8,
         0x70, 0xEC, 0x2B, 0x1E, 0x78, 0x36, 0xB0, 0x30,
         0x6E, 0x1B, 0x83, 0xFD, 0x8A, 0xE3, 0x5E, 0xDD,
         0x92, 0xE3, 0x98, 0xE7, 0x7F, 0xEF, 0x8E, 0x02,
         0xB1, 0x13, 0xA8, 0x13, 0x20, 0x06, 0x7C, 0xFC,
         0xB1, 0xFF, 0x51, 0x03, 0x22, 0xFA, 0x74, 0xF0,
         0x43, 0xFA, 0x82, 0x15, 0xD2, 0x2B, 0x59, 0x24,
         0x2E, 0xF8, 0x53, 0xC6, 0x6B, 0xBE, 0x45, 0xE8,
         0x7C, 0x1A, 0x1B, 0x2E, 0x6E, 0x22, 0x2D, 0x0D,
         0xFA, 0xFC, 0x49, 0xF3, 0x2E, 0xEA, 0x93, 0xDE,
         0xDD, 0xDE, 0xE3, 0xFC, 0x4E, 0x28, 0x85, 0x36,
         0x8A, 0x1A, 0x74, 0xF0, 0x6E, 0xD4, 0x83, 0xD1,
         0xF8, 0xE7, 0x65, 0x0D, 0x6E, 0x2C, 0xF0, 0x2D,
         0xC0, 0x0E, 0xA7, 0xEA, 0xEE, 0xDF, 0xB6, 0xF0,
         0xF7, 0x0B, 0x33, 0x1B, 0xA9, 0x0E, 0xF3, 0xF5,
         0xA2, 0xF0, 0x26, 0xFB, 0x4C, 0xFA, 0x40, 0xF1,
         0xDE, 0xF8, 0x04, 0x10, 0x20, 0x1A, 0x11, 0x07,
         0xC2, 0xE6, 0xE0, 0xD0, 0xF0, 0xD2, 0x9C, 0xF5,
         0x5D, 0x2C, 0xCC, 0x4E, 0xDB, 0x45, 0xB0, 0x20,
         0xEF, 0xEF, 0x2C, 0xC4, 0xDB, 0xBC, 0x0C, 0xE3,
         0x5C, 0x14, 0x2B, 0x2E, 0x8F, 0x25, 0xD2, 0x00,
         0xBA, 0xDB, 0x34, 0xD1, 0x16, 0xDE, 0xEA, 0xF3,
         0xE6, 0x0E, 0x72, 0x25, 0x65, 0x27, 0xC0, 0x12,
         0xE9, 0xF8, 0x90, 0xF0, 0x5B, 0x01, 0x2C, 0x14,
         0x5F, 0x0C, 0xA2, 0xEB, 0xED, 0xD7, 0xC0, 0xF0,
         0xFF, 0x1A, 0xC3, 0x1E, 0x66, 0xFC, 0x86, 0xE9,
         0x51, 0xF9, 0xD5, 0x0D, 0xD6, 0x0E, 0x7C, 0xFF,
         0x80, 0xEE, 0xA3, 0xE9, 0x0C, 0xF2, 0x0A, 0xFC,
         0x3B, 0x01, 0x3F, 0x08, 0x7B, 0x14, 0x23, 0x1A,
         0xD9, 0x0C, 0x7D, 0xF8, 0x35, 0xF7, 0x87, 0x07,
         0xBC, 0x0A, 0xA2, 0xF7, 0x61, 0xE9, 0x21, 0xEB,
         0x66, 0xEC, 0x12, 0xED, 0x99, 0x02, 0x4F, 0x28,
         0x7C, 0x36, 0x5D, 0x15, 0x50, 0xE3, 0x2B, 0xD5,
         0x52, 0xF4, 0xE0, 0x16, 0xF8, 0x18, 0xB9, 0xFD,
         0xF4, 0xE0, 0x23, 0xE1, 0x45, 0x01, 0x60, 0x1B,
         0x66, 0x13, 0xCA, 0xFA, 0xE2, 0xEC, 0x17, 0xF3,
         0xEF, 0x08, 0xE0, 0x19, 0x61, 0x0F, 0x42, 0xF3,
         0x6D, 0xE5, 0x79, 0xF6, 0x34, 0x19, 0x89, 0x2B,
         0x89, 0x16, 0x19, 0xEC, 0xB4, 0xD2, 0x0A, 0xD9,
         0xD6, 0xF5, 0xD7, 0x16, 0x5F, 0x27, 0x4F, 0x1C,
         0xB5, 0xFA, 0x96, 0xD5, 0xBB, 0xC9, 0x1C, 0xEC,
         0x46, 0x27, 0xC6, 0x3D, 0x1B, 0x12, 0x73, 0xD8,
         0x08, 0xD7, 0xFC, 0x09, 0x3C, 0x33, 0xE4, 0x2C,
         0x0F, 0x05, 0xFF, 0xE2, 0xDE, 0xE3, 0x78, 0xFD,
         0xF6, 0x07, 0x20, 0xF5, 0x80, 0xE4, 0xE8, 0xF0,
         0x68, 0x0A, 0xFE, 0x14, 0xEE, 0x10, 0x10, 0x0A,
         0x5D, 0xFB, 0xCC, 0xE6, 0x8C, 0xE6, 0x27, 0x01,
         0xD3, 0x14, 0x12, 0x0C, 0x13, 0xFD, 0xF7, 0x02,
         0x18, 0x15, 0x30, 0x16, 0xAF, 0xFF, 0x6E, 0xEB,
         0x15, 0xED, 0x10, 0xFA, 0x50, 0x00, 0xD8, 0xFF,
         0x82, 0x04, 0x84, 0x12, 0x53, 0x1C, 0xDF, 0x0C,
         0x17, 0xE6, 0x50, 0xC9, 0xF4, 0xD1, 0x19, 0xF6,
         0x66, 0x18, 0x82, 0x26, 0xB1, 0x1C, 0x5D, 0x01,
         0x41, 0xE8, 0x36, 0xE8, 0xF1, 0x03, 0x63, 0x22,
         0xCA, 0x27, 0xDB, 0x13, 0xBE, 0xFD, 0x35, 0xF2,
         0xAF, 0xEB, 0xD3, 0xE5, 0x6A, 0xE5, 0x88, 0xF0,
         0xF4, 0x04, 0x33, 0x12, 0x0F, 0x0B, 0x2A, 0xFA,
         0xF1, 0xF0, 0x49, 0xF0, 0xF3, 0xF3, 0xEC, 0xFF,
         0xA3, 0x16, 0xCD, 0x2C, 0x97, 0x2B, 0xC5, 0x09,
         0x2A, 0xE0, 0x57, 0xD3, 0xEB, 0xEC, 0xC8, 0x11,
         0x42, 0x1E, 0x83, 0x0A, 0x42, 0xF0, 0x34, 0xE8,
         0x77, 0xEF, 0x84, 0xF5, 0xB0, 0xF4, 0xD9, 0xF5,
         0xD9, 0x04, 0xE4, 0x1C, 0x5A, 0x29, 0xB2, 0x21,
         0x93, 0x0E, 0x0C, 0xF3, 0x4F, 0xD2, 0x89, 0xC6,
         0xF4, 0xEA, 0x5C, 0x2A, 0x6B, 0x46, 0x27, 0x1E,
         0xA3, 0xDA, 0x01, 0xBE, 0x69, 0xD8, 0x39, 0x05,
         0x4D, 0x1E, 0x75, 0x1E, 0x72, 0x17, 0x75, 0x0F,
         0xE5, 0xFB, 0xFB, 0xE3, 0x3B, 0xE2, 0x17, 0xF9,
         0x18, 0x11, 0xE8, 0x1C, 0xC5, 0x1C, 0xB0, 0x0E,
         0x0D, 0xF9, 0x38, 0xEB, 0x6B, 0xE7, 0xB8, 0xE4,
         0xD7, 0xE6, 0xFF, 0xF6, 0x6E, 0x0C, 0xB7, 0x14,
         0xF0, 0x0C, 0x86, 0xFE, 0x7D, 0xF1, 0x4D, 0xF3,
         0x29, 0x0F, 0xE4, 0x32, 0x62, 0x38, 0x03, 0x14,
         0x55, 0xE1, 0xE5, 0xC3, 0xDC, 0xCB, 0x8C, 0xED,
         0xC9, 0x0D, 0xD2, 0x1C, 0x70, 0x1B, 0x77, 0x08,
         0xFB, 0xE9, 0x38, 0xDC, 0xAF, 0xEE, 0x11, 0x08,
         0x63, 0x0E, 0xEA, 0x0B, 0x6A, 0x13, 0x68, 0x1E,
         0xA9, 0x18, 0xCB, 0xFD, 0xF5, 0xE2, 0x59, 0xE0,
         0x0F, 0xF4, 0xC4, 0x07, 0xB4, 0x0C, 0x80, 0x03,
         0xAC, 0xF2, 0xCC, 0xE5, 0xDD, 0xE9, 0x0A, 0x02,
         0x19, 0x20, 0x5E, 0x2B, 0x86, 0x14, 0xC9, 0xEB,
         0xB3, 0xD9, 0x03, 0xF2, 0xB4, 0x19, 0xB6, 0x26,
         0x02, 0x0C, 0x16, 0xE2, 0x90, 0xCF, 0x9F, 0xE5,
         0xB8, 0x0C, 0xD4, 0x1F, 0xF2, 0x16, 0x4A, 0x04,
         0x53, 0xF5, 0x89, 0xED, 0x1E, 0xF3, 0x25, 0x06,
         0xDF, 0x14, 0x7B, 0x10, 0xFD, 0x03, 0xCA, 0xFE,
         0x38, 0xFA, 0x1E, 0xEF, 0x17, 0xEE, 0x50, 0x03,
         0xF0, 0x1A, 0x9F, 0x19, 0x23, 0x01, 0xAC, 0xEA,
         0x3D, 0xE5, 0xBC, 0xEA, 0x69, 0xF5, 0xF4, 0x08,
         0xE3, 0x1D, 0xE2, 0x1F, 0x6C, 0x09, 0x6B, 0xEC,
         0x93, 0xDF, 0xA3, 0xE8, 0xC7, 0xFC, 0x21, 0x14,
         0x71, 0x2D, 0x91, 0x38, 0xF9, 0x1D, 0x06, 0xE9,
         0x05, 0xC3, 0x6F, 0xC3, 0x51, 0xE3, 0xBA, 0x0D,
         0x71, 0x29, 0x9E, 0x25, 0x9B, 0x07, 0x40, 0xE6,
         0x1F, 0xDB, 0x0B, 0xEE, 0x04, 0x0B, 0xAA, 0x1A,
         0xA5, 0x1C, 0xCA, 0x1A, 0xC5, 0x12, 0x28, 0xFD,
         0x5D, 0xE3, 0x94, 0xDB, 0xE5, 0xEF, 0x1C, 0x0B,
         0x7E, 0x0F, 0xA8, 0xFC, 0x01, 0xEB, 0xC1, 0xED,
         0xC3, 0x06, 0xEB, 0x24, 0xCD, 0x2C, 0xA7, 0x14,
         0x19, 0xEF, 0xC7, 0xD3, 0x1B, 0xD0, 0x0E, 0xE7,
         0x67, 0x0C, 0xD7, 0x27, 0x11, 0x27, 0xA7, 0x0C,
         0x15, 0xF0, 0x8E, 0xE6, 0x09, 0xEF, 0xBB, 0xFC,
         0xB4, 0x09, 0xF8, 0x12, 0x21, 0x15, 0x03, 0x0D,
         0x42, 0xF9, 0xE9, 0xDF, 0x89, 0xD5, 0x5D, 0xE7,
         0x16, 0x09, 0xA3, 0x23, 0x9C, 0x28, 0xE1, 0x15,
         0x00, 0xF7, 0x1A, 0xE1, 0xD0, 0xE2, 0x2F, 0xF9,
         0xD6, 0x13, 0x47, 0x1F, 0xD6, 0x11, 0x5C, 0xF6,
         0x57, 0xE4, 0xE5, 0xE6, 0xBA, 0xF3, 0xCE, 0xFD,
         0xFA, 0x04, 0x73, 0x0C, 0xB3, 0x0E, 0x53, 0x06,
         0x93, 0xF9, 0x13, 0xF6, 0x6F, 0x03, 0x12, 0x19,
         0xE8, 0x20, 0x7F, 0x0D, 0x6C, 0xED, 0x47, 0xDF,
         0x11, 0xEE, 0xBA, 0x02, 0xA2, 0x01, 0x26, 0xF0,
         0xF3, 0xEA, 0x3E, 0xFD, 0x7F, 0x13, 0x3B, 0x1A,
         0x58, 0x0B, 0xBE, 0xED, 0xEF, 0xDB, 0x84, 0xED,
         0xAD, 0x13, 0x0A, 0x2C, 0x2D, 0x29, 0xEE, 0x13,
         0x64, 0xFC, 0x6C, 0xEF, 0x00, 0xEE, 0xCD, 0xF2,
         0x93, 0xF7, 0x28, 0xF4, 0xB9, 0xEC, 0x59, 0xF2,
         0x8A, 0x05, 0x72, 0x11, 0x88, 0x0A, 0xE8, 0xF9,
         0xCA, 0xF1, 0x7C, 0xFE, 0x05, 0x14, 0x45, 0x19,
         0xFD, 0x0A, 0xD8, 0xFC, 0x18, 0xFD, 0x1A, 0x06,
         0xF2, 0x04, 0x67, 0xF2, 0x91, 0xE3, 0x01, 0xEE,
         0xF2, 0x08, 0xF5, 0x1A, 0xEB, 0x14, 0xB1, 0xFE,
         0x85, 0xEE, 0xFF, 0xED, 0xAA, 0xF5, 0x43, 0x02,
         0x09, 0x10, 0xEC, 0x0F, 0xBC, 0xFE, 0xD7, 0xEF,
         0x88, 0xF2, 0x20, 0x01, 0x4D, 0x0B, 0x75, 0x08,
         0x82, 0x00, 0xBF, 0xFE, 0x77, 0x03, 0xC1, 0x06,
         0x5F, 0x02, 0xEF, 0xFB, 0x98, 0x00, 0xE6, 0x08,
         0x21, 0xFF, 0x51, 0xEA, 0x8F, 0xE6, 0xFE, 0xF7,
         0x35, 0x0C, 0x35, 0x14, 0xDF, 0x0A, 0xBB, 0xFA,
         0xBF, 0xF6, 0x91, 0x00, 0xDB, 0x08, 0xB7, 0x06,
         0xC7, 0xFC, 0x5A, 0xF4, 0x72, 0xF6, 0xC0, 0x01,
         0xBD, 0x0C, 0xAC, 0x0E, 0x5D, 0x03, 0x6D, 0xF1,
         0xE7, 0xE7, 0x47, 0xEF, 0xEE, 0x03, 0x84, 0x18,
         0x9D, 0x1B, 0xD3, 0x0A, 0xB2, 0xF8, 0xE9, 0xF0,
         0x29, 0xEF, 0x55, 0xF1, 0xBE, 0xF8, 0xF7, 0x03,
         0x92, 0x0F, 0xB5, 0x16, 0xAD, 0x13, 0x3C, 0x06,
         0xF6, 0xF2, 0x7C, 0xE2, 0xE1, 0xE2, 0x78, 0xF9,
         0x0C, 0x15, 0xA0, 0x1D, 0x01, 0x0D, 0x6B, 0xF2,
         0x56, 0xE6, 0x9E, 0xF4, 0x45, 0x0C, 0xF2, 0x12,
         0xE9, 0x04, 0x0C, 0xF5, 0xF5, 0xF4, 0x82, 0x05,
         0x71, 0x18, 0x35, 0x1C, 0x87, 0x0B, 0xAB, 0xF3,
         0x29, 0xEA, 0x1B, 0xF4, 0x96, 0xFB, 0x17, 0xEE,
         0x62, 0xDC, 0xB1, 0xE3, 0x78, 0x03, 0xEA, 0x21,
         0x03, 0x2B, 0x43, 0x1B, 0x1D, 0xFE, 0xEB, 0xE9,
         0x4B, 0xEC, 0x5D, 0xFD, 0x04, 0x0F, 0x12, 0x1A,
         0xF6, 0x18, 0xA9, 0x09, 0x78, 0xF6, 0x9A, 0xEC,
         0xE7, 0xEE, 0x3D, 0xF7, 0x0D, 0xFE, 0x57, 0xFC,
         0x37, 0xF2, 0x6C, 0xEA, 0x11, 0xEF, 0x03, 0xFD,
         0x6D, 0x09, 0x63, 0x0F, 0xA3, 0x11, 0x85, 0x11,
         0x08, 0x10, 0xE1, 0x10, 0x48, 0x10, 0x37, 0x03,
         0xC1, 0xEB, 0x3A, 0xE0, 0xE9, 0xEF, 0xFC, 0x0C,
         0xD2, 0x1D, 0x7C, 0x18, 0xC8, 0x06, 0x5A, 0xF6,
         0x1C, 0xEB, 0x20, 0xE0, 0x3E, 0xD7, 0x1F, 0xDE,
         0x8E, 0xFA, 0xE3, 0x1B, 0x4D, 0x2A, 0x7C, 0x1F,
         0x19, 0x07, 0x85, 0xF2, 0xB2, 0xEE, 0xE9, 0xFB,
         0x94, 0x0C, 0x8C, 0x12, 0x23, 0x0F, 0x6E, 0x0C,
         0x9D, 0x0A, 0x39, 0x00, 0x91, 0xEC, 0x1F, 0xDE,
         0x38, 0xE3, 0x5F, 0xFA, 0x9E, 0x13, 0xF7, 0x1D,
         0x36, 0x13, 0xF3, 0xFA, 0xC9, 0xE4, 0x14, 0xDE,
         0x47, 0xE9, 0x22, 0xFE, 0xA8, 0x11, 0x64, 0x1B,
         0xF5, 0x15, 0x6B, 0x01, 0x27, 0xE9, 0xB1, 0xE0,
         0x52, 0xF2, 0x7D, 0x12, 0x74, 0x28, 0x60, 0x24,
         0x9E, 0x0C, 0xF5, 0xF5, 0x5A, 0xF0, 0x1E, 0xFA,
         0x71, 0x03, 0x1C, 0xFF, 0x63, 0xF0, 0x07, 0xE8,
         0x4A, 0xF2, 0xC6, 0x08, 0xD3, 0x17, 0x18, 0x11,
         0x88, 0xF8, 0x8C, 0xE0, 0x0B, 0xDA, 0xED, 0xE8,
         0xA9, 0x02, 0x82, 0x18, 0xCA, 0x1F, 0xB8, 0x17,
         0xB7, 0x07, 0xE3, 0xFA, 0xC6, 0xF7, 0x55, 0xFC,
         0xD1, 0x01, 0xAE, 0x04, 0x29, 0x06, 0xA2, 0x06,
         0x5E, 0x02, 0x51, 0xF7, 0x83, 0xEB, 0x14, 0xE9,
         0x76, 0xF3, 0xDE, 0x02, 0x21, 0x0D, 0x6C, 0x0F,
         0xAA, 0x0E, 0x33, 0x0F, 0xE5, 0x0E, 0x84, 0x08,
         0x89, 0xFB, 0x8E, 0xEE, 0x70, 0xE9, 0xC2, 0xED,
         0x3F, 0xF6, 0x0F, 0xFD, 0x60, 0x00, 0x07, 0x01,
         0x7D, 0xFF, 0x13, 0xFC, 0x2B, 0xF9, 0xC1, 0xFA,
         0x9F, 0x02, 0xD6, 0x0D, 0xAE, 0x16, 0x44, 0x18,
         0x1B, 0x11, 0xAC, 0x03, 0xA0, 0xF6, 0xD4, 0xF1,
         0xF4, 0xF7, 0x71, 0x02, 0x70, 0x06, 0xF3, 0xFE,
         0x42, 0xF2, 0x2B, 0xEC, 0xEA, 0xF2, 0x46, 0x02,
         0x66, 0x10, 0x72, 0x15, 0x5B, 0x0F, 0x30, 0x01,
         0x7C, 0xF1, 0x13, 0xE8, 0xEC, 0xE9, 0x7F, 0xF5,
         0x7B, 0x03, 0xF0, 0x0C, 0x72, 0x10, 0xE8, 0x10,
         0x55, 0x10, 0x25, 0x0D, 0x30, 0x05, 0xB6, 0xF9,
         0xF2, 0xEF, 0xCB, 0xEC, 0x5D, 0xF1, 0x83, 0xFA,
         0xA2, 0x03, 0x3F, 0x09, 0xBD, 0x09, 0x9B, 0x05,
         0x19, 0xFF, 0xE0, 0xF9, 0x9F, 0xF8, 0x99, 0xFB,
         0x9D, 0x00, 0xB9, 0x04, 0x48, 0x06, 0xAE, 0x05,
         0x9D, 0x04, 0x56, 0x04, 0x64, 0x04, 0x7B, 0x03,
         0x00, 0x01, 0xE4, 0xFD, 0xD3, 0xFB, 0xB0, 0xFB,
         0x38, 0xFD, 0x5A, 0xFF, 0x15, 0x01, 0x79, 0x01,
         0xB6, 0xFF, 0x13, 0xFC, 0x43, 0xF8, 0x9C, 0xF6,
         0x8A, 0xF8, 0x4F, 0xFD, 0xA9, 0x02, 0x77, 0x06,
         0xC8, 0x07, 0xEE, 0x06, 0xD7, 0x04, 0xAB, 0x02,
         0x4F, 0x01, 0xD2, 0x00, 0x89, 0x00, 0xA7, 0xFF,
         0x25, 0xFE, 0xC9, 0xFC, 0x8B, 0xFC, 0xA9, 0xFD,
         0x6A, 0xFF, 0xDA, 0x00, 0x55, 0x01, 0xC3, 0x00,
         0xBA, 0xFF, 0x1B, 0xFF, 0xA2, 0xFF, 0x3F, 0x01,
         0xF8, 0x02, 0x9F, 0x03, 0x9F, 0x02, 0x4B, 0x00,
         0x7F, 0xFD, 0x32, 0xFB, 0x65, 0xFA, 0xBE, 0xFB,
         0x0C, 0xFF, 0xE8, 0x02, 0x4B, 0x05, 0xF4, 0x04,
         0x5D, 0x02, 0x55, 0xFF, 0x7B, 0xFD, 0x33, 0xFD,
         0xC7, 0xFD, 0x62, 0xFE, 0xB4, 0xFE, 0xF7, 0xFE,
         0x70, 0xFF, 0x0F, 0x00, 0xA8, 0x00, 0x15, 0x01,
         0x4F, 0x01, 0x6C, 0x01, 0x8D, 0x01, 0xD1, 0x01,
         0x26, 0x02, 0x44, 0x02, 0xC1, 0x01, 0x77, 0x00,
         0xA3, 0xFE, 0xF0, 0xFC, 0x1E, 0xFC, 0x92, 0xFC,
         0x0D, 0xFE, 0xDD, 0xFF, 0x27, 0x01, 0x87, 0x01,
         0x26, 0x01, 0x85, 0x00, 0x17, 0x00, 0x00, 0x00,
         0x32, 0x00, 0x93, 0x00, 0xEA, 0x00, 0xF7, 0x00,
         0x87, 0x00, 0xA9, 0xFF, 0xB8, 0xFE, 0x2A, 0xFE,
         0x3B, 0xFE, 0xD9, 0xFE, 0xC2, 0xFF, 0xA5, 0x00,
         0x3E, 0x01, 0x5B, 0x01, 0xEF, 0x00, 0x25, 0x00,
         0x5B, 0xFF, 0xFB, 0xFE, 0x25, 0xFF, 0xB8, 0xFF,
         0x65, 0x00, 0xE6, 0x00, 0x0E, 0x01, 0xD7, 0x00,
         0x5B, 0x00, 0xC3, 0xFF, 0x4D, 0xFF, 0x2A, 0xFF,
         0x6E, 0xFF, 0xFB, 0xFF, 0x92, 0x00, 0xEE, 0x00,
         0xED, 0x00, 0x88, 0x00, 0xF1, 0xFF, 0x6C, 0xFF,
         0x1F, 0xFF, 0x19, 0xFF, 0x4C, 0xFF, 0x97, 0xFF,
         0xE3, 0xFF, 0x1E, 0x00, 0x39, 0x00, 0x31, 0x00,
         0x12, 0x00,
     };

#else /* __MMI_GAME_MULTICHANNEL_SOUND__ */ 

#define  UFOEAT_DVI  6164

__align(2)
     const U8 UfoEat_dvi[6164] = 
     {
         0x77, 0xD7, 0x77, 0x77, 0x0E, 0x08, 0x3F, 0xB7, 0x08, 0x17, 0xD8, 0x08, 0x80, 0x08, 0x80, 0x08,
         0x08, 0x80, 0x80, 0x80, 0x00, 0x08, 0x80, 0x08, 0x88, 0x88, 0x08, 0x88, 0x98, 0x88, 0x80, 0x01,
         0x01, 0x08, 0x21, 0x43, 0x24, 0x02, 0x00, 0x99, 0xA9, 0xEB, 0xBC, 0xBB, 0x8A, 0x00, 0x00, 0x99,
         0x9A, 0x48, 0x26, 0x22, 0x41, 0x87, 0x9B, 0x8D, 0xB2, 0x8E, 0x10, 0x86, 0x19, 0x23, 0x86, 0x1C,
         0x01, 0xB0, 0x0F, 0x81, 0xB8, 0x1D, 0x83, 0x99, 0x3A, 0x27, 0x09, 0x49, 0x07, 0x0A, 0x19, 0xB2,
         0xAF, 0x8A, 0xA1, 0x0B, 0x16, 0x06, 0x28, 0x13, 0x81, 0x8F, 0x99, 0xA9, 0x8C, 0x80, 0x88, 0x30,
         0x17, 0x02, 0x21, 0x84, 0x0A, 0x18, 0xD1, 0x9F, 0x09, 0xB0, 0x8D, 0x12, 0x94, 0x39, 0x16, 0x02,
         0x2B, 0x03, 0xCB, 0x9F, 0x91, 0xAA, 0x0D, 0x83, 0x01, 0x52, 0x07, 0x00, 0x28, 0x91, 0x9D, 0x9B,
         0xAA, 0x8D, 0x01, 0x82, 0x40, 0x17, 0x10, 0x18, 0x82, 0x8D, 0x0A, 0xA0, 0x9E, 0x00, 0x92, 0x0C,
         0x22, 0x84, 0x1A, 0x16, 0x82, 0x1A, 0x01, 0xDB, 0x9F, 0x89, 0x98, 0x09, 0x14, 0x15, 0x32, 0x23,
         0x80, 0x8D, 0xAB, 0xBB, 0xAE, 0x9A, 0x01, 0x13, 0x33, 0x26, 0x12, 0x20, 0x11, 0x9A, 0x9D, 0xAB,
         0xAD, 0x9D, 0x88, 0x92, 0x00, 0x36, 0x17, 0x00, 0x10, 0x80, 0x9D, 0x89, 0xC8, 0xAD, 0x19, 0x82,
         0x89, 0x25, 0x07, 0x20, 0x22, 0x81, 0x8F, 0x8A, 0xB9, 0x9D, 0x00, 0x82, 0x20, 0x16, 0x12, 0x08,
         0x81, 0x9A, 0x8D, 0x90, 0xA9, 0x8A, 0x80, 0x08, 0x00, 0x80, 0x53, 0x47, 0x12, 0x22, 0x80, 0x9F,
         0x8C, 0xBB, 0x9E, 0x08, 0x03, 0x32, 0x27, 0x13, 0x09, 0x00, 0xBA, 0xAF, 0x99, 0xA9, 0x0A, 0x15,
         0x82, 0x18, 0x16, 0x01, 0x18, 0x02, 0xAB, 0x8D, 0x88, 0xBD, 0x9C, 0x01, 0x00, 0x33, 0x27, 0x12,
         0x21, 0x01, 0xAB, 0xAE, 0xBB, 0x9D, 0x9A, 0x88, 0x02, 0x15, 0x26, 0x24, 0x12, 0x80, 0x99, 0xAE,
         0xAC, 0xBA, 0xAA, 0x08, 0x27, 0x13, 0x22, 0x14, 0x88, 0x0A, 0x99, 0xAE, 0x9B, 0x91, 0xAA, 0x09,
         0x03, 0x89, 0x46, 0x27, 0x02, 0x21, 0x01, 0xAD, 0x9D, 0xAB, 0x9E, 0x89, 0x03, 0x14, 0x24, 0x14,
         0x11, 0x09, 0x99, 0xAE, 0x9C, 0x89, 0x99, 0x00, 0x14, 0x12, 0x33, 0x16, 0x81, 0x89, 0x80, 0xBB,
         0x9F, 0xA9, 0xAC, 0x09, 0x13, 0x03, 0x25, 0x27, 0x11, 0x10, 0x80, 0xBC, 0x9D, 0x9B, 0xAC, 0x9A,
         0x01, 0x33, 0x37, 0x15, 0x13, 0x81, 0x88, 0xAC, 0x9F, 0xAB, 0x99, 0x08, 0x33, 0x17, 0x11, 0x11,
         0x02, 0xAA, 0x9B, 0xA9, 0xAD, 0x08, 0x81, 0xAF, 0x08, 0x12, 0x18, 0x37, 0x15, 0x01, 0x11, 0xA0,
         0xBF, 0x9C, 0xAA, 0x8B, 0x31, 0x15, 0x22, 0x26, 0x03, 0x89, 0x89, 0xCB, 0x9D, 0x89, 0x99, 0x0A,
         0x22, 0x24, 0x22, 0x17, 0x01, 0x00, 0x81, 0xCA, 0xAD, 0x9C, 0x9B, 0x89, 0x11, 0x43, 0x34, 0x25,
         0x14, 0x01, 0xA9, 0xB9, 0xBC, 0xAD, 0x9B, 0x9C, 0x0B, 0x43, 0x24, 0x33, 0x27, 0x13, 0x80, 0x98,
         0xBF, 0x9D, 0x8A, 0x89, 0x10, 0x34, 0x14, 0x23, 0x13, 0xA9, 0xAD, 0x9A, 0x9B, 0x9B, 0x80, 0x9A,
         0x0A, 0x33, 0x20, 0x55, 0x47, 0x23, 0x13, 0x91, 0xDC, 0xBC, 0xAC, 0x9B, 0x0A, 0x32, 0x36, 0x25,
         0x12, 0x82, 0x99, 0xAC, 0xAB, 0xAD, 0x9A, 0x18, 0x21, 0x42, 0x24, 0x11, 0x12, 0x15, 0x91, 0xBA,
         0xCA, 0xAE, 0x9C, 0x8A, 0x8C, 0x28, 0x35, 0x24, 0x33, 0x04, 0x91, 0x98, 0xCB, 0xBE, 0xAB, 0x9B,
         0x1A, 0x40, 0x33, 0x26, 0x25, 0x13, 0x81, 0xB9, 0xBD, 0xAD, 0xAB, 0x8B, 0x19, 0x34, 0x26, 0x15,
         0x02, 0x80, 0x99, 0xAA, 0x9C, 0x9B, 0x9B, 0x8A, 0x10, 0x09, 0x2B, 0x64, 0x35, 0x26, 0x13, 0x92,
         0xC9, 0xCB, 0xAE, 0x9C, 0x0A, 0x28, 0x43, 0x25, 0x13, 0x02, 0x90, 0xBA, 0xAE, 0x9C, 0x8B, 0x09,
         0x21, 0x22, 0x24, 0x23, 0x15, 0x12, 0x90, 0xA8, 0xCA, 0xBC, 0xAD, 0x9D, 0x8B, 0x29, 0x42, 0x43,
         0x25, 0x23, 0x03, 0x92, 0xDA, 0xAE, 0x9C, 0x9A, 0x8A, 0x18, 0x33, 0x36, 0x25, 0x13, 0x91, 0xB8,
         0xCB, 0xAE, 0x9C, 0x9A, 0x08, 0x33, 0x26, 0x13, 0x13, 0x02, 0x99, 0xBB, 0xAE, 0xAB, 0x89, 0x88,
         0x98, 0xAA, 0x09, 0x60, 0x54, 0x25, 0x14, 0x03, 0x91, 0xDB, 0xAE, 0xAC, 0x8B, 0x18, 0x43, 0x34,
         0x24, 0x03, 0x91, 0xCA, 0xBC, 0xAC, 0x8A, 0x19, 0x21, 0x13, 0x15, 0x13, 0x11, 0x00, 0x08, 0x08,
         0x81, 0xEA, 0xDC, 0xBB, 0x9C, 0x8A, 0x28, 0x53, 0x35, 0x25, 0x13, 0x80, 0xB9, 0xBD, 0xAC, 0x9C,
         0x9A, 0x08, 0x33, 0x27, 0x14, 0x12, 0x82, 0x90, 0xBB, 0xBE, 0xAD, 0x9A, 0x09, 0x21, 0x34, 0x25,
         0x23, 0x13, 0x80, 0xAC, 0xAD, 0x9B, 0x89, 0x88, 0x90, 0x98, 0x89, 0x10, 0x31, 0x47, 0x36, 0x15,
         0x12, 0xB8, 0xCD, 0xAD, 0x9B, 0x0A, 0x20, 0x35, 0x26, 0x13, 0x82, 0xA9, 0xBC, 0xAD, 0xAA, 0x09,
         0x10, 0x23, 0x25, 0x13, 0x00, 0x88, 0x08, 0x10, 0x01, 0xA9, 0xEB, 0xBC, 0xAD, 0xAC, 0x99, 0x21,
         0x37, 0x25, 0x22, 0x02, 0xA8, 0xAC, 0xBD, 0xBC, 0x9B, 0x08, 0x33, 0x45, 0x24, 0x13, 0x12, 0x91,
         0xCB, 0xAE, 0xBB, 0xAB, 0x8A, 0x11, 0x33, 0x37, 0x15, 0x12, 0x80, 0xA8, 0x9B, 0xAB, 0xAA, 0xAC,
         0x99, 0x80, 0x19, 0x01, 0x23, 0x57, 0x36, 0x33, 0x11, 0xB9, 0xCF, 0xAC, 0xBB, 0x9B, 0x20, 0x36,
         0x26, 0x23, 0x12, 0x99, 0xAC, 0xBC, 0xAC, 0x9A, 0x00, 0x22, 0x25, 0x12, 0x01, 0x01, 0x00, 0x00,
         0x91, 0xA9, 0xAC, 0xCC, 0xAE, 0x9C, 0x89, 0x31, 0x36, 0x15, 0x22, 0x11, 0x88, 0xBC, 0xBD, 0xBC,
         0x9B, 0x88, 0x12, 0x25, 0x26, 0x32, 0x23, 0x01, 0xBA, 0xAF, 0xBB, 0xAC, 0x9B, 0x08, 0x32, 0x36,
         0x25, 0x21, 0x00, 0x98, 0xAA, 0xBB, 0xAD, 0x9B, 0x88, 0x00, 0x80, 0x90, 0x32, 0x57, 0x25, 0x23,
         0x11, 0x90, 0xBD, 0xBF, 0xAC, 0xAB, 0x08, 0x34, 0x26, 0x24, 0x22, 0x80, 0xB9, 0xBD, 0xBC, 0x9A,
         0x09, 0x22, 0x33, 0x24, 0x11, 0x02, 0x00, 0x09, 0x01, 0x11, 0x99, 0xDE, 0xAF, 0xBB, 0x99, 0x20,
         0x35, 0x35, 0x24, 0x23, 0x80, 0xBC, 0xBD, 0xBC, 0x9A, 0x89, 0x10, 0x34, 0x35, 0x43, 0x22, 0x00,
         0x99, 0xBB, 0xBE, 0xBC, 0xAB, 0x9A, 0x21, 0x35, 0x34, 0x33, 0x24, 0x02, 0x99, 0xCC, 0xAC, 0xAB,
         0x9A, 0x89, 0x08, 0x32, 0x45, 0x24, 0x24, 0x13, 0x12, 0x80, 0xEB, 0xAF, 0xBC, 0x9B, 0x0A, 0x21,
         0x36, 0x25, 0x24, 0x11, 0x98, 0xAC, 0xAD, 0x9B, 0x8A, 0x00, 0x22, 0x24, 0x24, 0x01, 0x90, 0x98,
         0x88, 0x01, 0x81, 0xDB, 0xBD, 0xAD, 0x9B, 0x0A, 0x32, 0x57, 0x43, 0x13, 0x01, 0xB9, 0xBD, 0xBC,
         0xBB, 0x9B, 0x18, 0x43, 0x36, 0x33, 0x23, 0x11, 0x90, 0xBA, 0xBF, 0xCB, 0xAB, 0x8A, 0x10, 0x32,
         0x44, 0x34, 0x33, 0x03, 0xA0, 0xBC, 0xBC, 0xAC, 0xAC, 0x9B, 0x0A, 0x30, 0x45, 0x43, 0x33, 0x25,
         0x14, 0x80, 0xD9, 0xBC, 0xAD, 0x9C, 0x8A, 0x18, 0x43, 0x35, 0x24, 0x13, 0x80, 0xCA, 0xAC, 0xAC,
         0x9B, 0x09, 0x21, 0x34, 0x24, 0x11, 0x80, 0x08, 0x08, 0x00, 0xA8, 0xEA, 0xCB, 0xBD, 0xAC, 0x8A,
         0x48, 0x45, 0x25, 0x23, 0x01, 0xA0, 0xBC, 0xBD, 0xAC, 0x8B, 0x19, 0x31, 0x25, 0x33, 0x23, 0x23,
         0x01, 0xB9, 0xCD, 0xCB, 0x9C, 0xAB, 0x8A, 0x18, 0x54, 0x34, 0x24, 0x12, 0x91, 0xB9, 0xCC, 0xAC,
         0xAB, 0x8B, 0x18, 0x32, 0x43, 0x24, 0x34, 0x34, 0x23, 0x82, 0xC9, 0xDC, 0xBC, 0xAD, 0xAB, 0x09,
         0x31, 0x37, 0x34, 0x23, 0x82, 0xB8, 0xCC, 0xBC, 0x9C, 0x8A, 0x11, 0x43, 0x33, 0x13, 0x02, 0x88,
         0x9A, 0xAB, 0x9A, 0x88, 0xCA, 0xCE, 0xBD, 0xAB, 0x18, 0x54, 0x44, 0x24, 0x13, 0x81, 0xBA, 0xCE,
         0xAB, 0x8C, 0x09, 0x20, 0x43, 0x23, 0x14, 0x02, 0x80, 0xAA, 0xBB, 0xAC, 0xAC, 0xBB, 0x9B, 0x29,
         0x54, 0x35, 0x24, 0x14, 0x01, 0xA0, 0xCB, 0xBD, 0x9C, 0x9A, 0x88, 0x11, 0x32, 0x34, 0x34, 0x24,
         0x13, 0x81, 0x98, 0xCC, 0xDC, 0xCB, 0xAB, 0x8A, 0x31, 0x45, 0x34, 0x14, 0x03, 0x90, 0xCB, 0xAE,
         0xAB, 0x9A, 0x18, 0x32, 0x35, 0x33, 0x23, 0x81, 0x99, 0x9C, 0x9A, 0x99, 0xC9, 0xCC, 0xBC, 0x9C,
         0x09, 0x31, 0x46, 0x34, 0x15, 0x02, 0xA0, 0xDB, 0xAC, 0xAB, 0x9A, 0x18, 0x33, 0x26, 0x24, 0x12,
         0x00, 0x99, 0xAA, 0xBC, 0xBC, 0xBC, 0x9A, 0x00, 0x43, 0x35, 0x34, 0x24, 0x12, 0x90, 0xCB, 0xBC,
         0xAC, 0xAA, 0x99, 0x98, 0x01, 0x32, 0x35, 0x35, 0x34, 0x24, 0x13, 0xA0, 0xDD, 0xCC, 0xAB, 0x9B,
         0x10, 0x43, 0x36, 0x33, 0x14, 0x90, 0xBB, 0xBE, 0xBB, 0x9A, 0x19, 0x22, 0x26, 0x23, 0x13, 0x00,
         0x89, 0x09, 0x18, 0x00, 0xA9, 0xBF, 0xBE, 0xBC, 0xAB, 0x09, 0x44, 0x36, 0x24, 0x13, 0x91, 0xBA,
         0xAE, 0xBC, 0x9A, 0x09, 0x31, 0x35, 0x43, 0x12, 0x01, 0x89, 0xAA, 0xBC, 0xBC, 0xBB, 0xBB, 0x99,
         0x11, 0x45, 0x45, 0x43, 0x23, 0x01, 0xA9, 0xAD, 0xAC, 0xBB, 0xAA, 0x09, 0x11, 0x33, 0x24, 0x33,
         0x35, 0x35, 0x23, 0x81, 0xEB, 0xCD, 0xCB, 0xAB, 0x8A, 0x32, 0x46, 0x34, 0x23, 0x02, 0xAA, 0xBD,
         0xBD, 0xAB, 0x9A, 0x10, 0x34, 0x34, 0x23, 0x12, 0x80, 0x89, 0x99, 0xA9, 0xAA, 0xBA, 0xBE, 0xAE,
         0xAC, 0x9A, 0x22, 0x47, 0x43, 0x23, 0x12, 0x99, 0xCD, 0xBC, 0xAC, 0x8A, 0x28, 0x43, 0x34, 0x24,
         0x22, 0x00, 0xAA, 0xBC, 0xAD, 0xAB, 0x9A, 0x89, 0x00, 0x33, 0x37, 0x43, 0x23, 0x12, 0x90, 0xBA,
         0xBE, 0xAD, 0xAB, 0x99, 0x00, 0x32, 0x43, 0x34, 0x34, 0x24, 0x13, 0x90, 0xCC, 0xBD, 0xBD, 0xAC,
         0x99, 0x21, 0x35, 0x26, 0x23, 0x12, 0x98, 0xCB, 0xBD, 0xBB, 0x9B, 0x08, 0x33, 0x25, 0x24, 0x12,
         0x11, 0x08, 0x99, 0xA9, 0xBA, 0xCB, 0xCC, 0xBC, 0xAB, 0x0A, 0x53, 0x36, 0x35, 0x23, 0x12, 0xA8,
         0xCD, 0xAD, 0xAC, 0x99, 0x08, 0x32, 0x35, 0x34, 0x23, 0x01, 0xA8, 0xDB, 0xCB, 0xAB, 0x9C, 0x8A,
         0x08, 0x32, 0x35, 0x25, 0x23, 0x13, 0x80, 0xCA, 0xCC, 0xBB, 0x9C, 0x8A, 0x10, 0x31, 0x43, 0x24,
         0x24, 0x23, 0x12, 0x91, 0xD9, 0xCD, 0xBD, 0xAC, 0x9B, 0x28, 0x63, 0x34, 0x25, 0x12, 0x81, 0xBA,
         0xBD, 0xAD, 0x9A, 0x09, 0x21, 0x43, 0x23, 0x13, 0x00, 0x98, 0x9A, 0x8A, 0x00, 0x80, 0xDA, 0xCD,
         0xAC, 0x9B, 0x29, 0x73, 0x34, 0x25, 0x13, 0x80, 0xCB, 0xBD, 0xAD, 0x9A, 0x09, 0x21, 0x44, 0x43,
         0x22, 0x02, 0x88, 0xAB, 0xAD, 0xBB, 0xAB, 0x9A, 0x08, 0x21, 0x34, 0x44, 0x33, 0x24, 0x22, 0x90,
         0xCB, 0xBE, 0xCB, 0xAA, 0x8A, 0x18, 0x53, 0x34, 0x34, 0x32, 0x12, 0x91, 0xC9, 0xDC, 0xCC, 0xBB,
         0xAB, 0x0A, 0x42, 0x36, 0x35, 0x23, 0x03, 0xB0, 0xCC, 0xBC, 0xAC, 0x89, 0x18, 0x22, 0x34, 0x23,
         0x02, 0x80, 0x8A, 0x8A, 0x09, 0x98, 0xDA, 0xDC, 0xCB, 0x9B, 0x0A, 0x52, 0x36, 0x35, 0x23, 0x82,
         0xB9, 0xCD, 0xBC, 0x9C, 0x9A, 0x18, 0x32, 0x35, 0x25, 0x22, 0x01, 0x89, 0xBB, 0xBD, 0xBB, 0x9C,
         0x89, 0x20, 0x32, 0x34, 0x25, 0x23, 0x02, 0x80, 0xBA, 0xCD, 0xCB, 0xBB, 0x9C, 0x0A, 0x20, 0x44,
         0x35, 0x43, 0x23, 0x13, 0x90, 0xEB, 0xBD, 0xAD, 0xAB, 0x9A, 0x10, 0x44, 0x35, 0x43, 0x12, 0x90,
         0xBA, 0xBD, 0xAC, 0x9A, 0x08, 0x31, 0x34, 0x23, 0x03, 0x00, 0x99, 0x0A, 0x09, 0x90, 0xDA, 0xEC,
         0xBC, 0xAC, 0x8A, 0x31, 0x46, 0x35, 0x23, 0x12, 0x98, 0xBD, 0xBD, 0xBB, 0xAB, 0x08, 0x32, 0x36,
         0x24, 0x23, 0x11, 0x88, 0xBA, 0xAD, 0xAC, 0xAB, 0x99, 0x08, 0x21, 0x35, 0x26, 0x23, 0x13, 0x81,
         0xB9, 0xBE, 0xAD, 0xAC, 0xAA, 0x09, 0x20, 0x34, 0x26, 0x24, 0x32, 0x12, 0x80, 0xBB, 0xBF, 0xBC,
         0xAC, 0x9B, 0x08, 0x32, 0x37, 0x34, 0x23, 0x01, 0xB9, 0xBD, 0xBD, 0xAB, 0x89, 0x21, 0x34, 0x25,
         0x23, 0x01, 0x98, 0xA9, 0xBA, 0xAA, 0xAA, 0xBB, 0xBF, 0xAD, 0x9B, 0x19, 0x54, 0x36, 0x24, 0x23,
         0x01, 0xBA, 0xBE, 0xBD, 0xAB, 0x89, 0x11, 0x44, 0x33, 0x24, 0x02, 0x90, 0xCA, 0xBB, 0xAD, 0x9A,
         0x09, 0x00, 0x32, 0x44, 0x33, 0x33, 0x23, 0x02, 0xA8, 0xBD, 0xBF, 0xCB, 0xAC, 0x9A, 0x09, 0x21,
         0x35, 0x36, 0x33, 0x14, 0x01, 0xA9, 0xCC, 0xAD, 0xBB, 0xAA, 0x08, 0x52, 0x34, 0x34, 0x23, 0x01,
         0xA9, 0xBD, 0xAE, 0xAB, 0x99, 0x00, 0x33, 0x35, 0x43, 0x12, 0x01, 0x90, 0xA9, 0xB9, 0xCA, 0xCB,
         0xBC, 0xBD, 0xAB, 0x09, 0x51, 0x45, 0x34, 0x24, 0x02, 0x98, 0xCC, 0xAC, 0x9C, 0x8A, 0x18, 0x32,
         0x35, 0x33, 0x13, 0x91, 0xBA, 0xBD, 0xAD, 0xAB, 0xAA, 0x88, 0x21, 0x44, 0x53, 0x33, 0x23, 0x13,
         0x91, 0xCA, 0xCD, 0xBB, 0xBC, 0xAA, 0x8A, 0x28, 0x52, 0x44, 0x24, 0x33, 0x12, 0x91, 0xDA, 0xCC,
         0xBC, 0xAB, 0x0A, 0x30, 0x45, 0x34, 0x24, 0x02, 0x90, 0xDB, 0xBC, 0xBB, 0xAB, 0x19, 0x31, 0x26,
         0x24, 0x13, 0x02, 0x80, 0x89, 0x89, 0x89, 0xC9, 0xDB, 0xCC, 0xAC, 0x9B, 0x19, 0x62, 0x44, 0x24,
         0x13, 0x91, 0xC9, 0xBD, 0xBB, 0x9C, 0x19, 0x41, 0x34, 0x24, 0x22, 0x00, 0xA9, 0xBC, 0xCB, 0xAB,
         0x9A, 0x89, 0x08, 0x21, 0x34, 0x54, 0x43, 0x23, 0x13, 0x81, 0xCA, 0xBD, 0xBD, 0xBB, 0x9B, 0x19,
         0x42, 0x35, 0x34, 0x33, 0x12, 0x90, 0xDA, 0xCC, 0xBC, 0xBA, 0x8A, 0x20, 0x63, 0x44, 0x33, 0x13,
         0x82, 0xC9, 0xCC, 0xCB, 0xAB, 0x8B, 0x08, 0x42, 0x34, 0x24, 0x22, 0x11, 0x80, 0x99, 0xBB, 0xDB,
         0xCA, 0xBB, 0xCB, 0xAA, 0x18, 0x73, 0x35, 0x34, 0x23, 0x82, 0xC9, 0xDC, 0xAC, 0xBB, 0x99, 0x21,
         0x44, 0x34, 0x24, 0x11, 0x80, 0xBA, 0xBC, 0xBC, 0xAB, 0x99, 0x88, 0x12, 0x43, 0x44, 0x33, 0x24,
         0x22, 0x00, 0xB9, 0xCD, 0xCC, 0xAB, 0xAA, 0x09, 0x22, 0x35, 0x35, 0x24, 0x22, 0x81, 0xBA, 0xCD,
         0xBC, 0xBB, 0xAB, 0x08, 0x44, 0x44, 0x24, 0x23, 0x02, 0x99, 0xBC, 0xAE, 0xBB, 0x9A, 0x09, 0x22,
         0x34, 0x43, 0x32, 0x21, 0x11, 0x88, 0xA9, 0xBB, 0xCD, 0xBC, 0xBC, 0x9C, 0x09, 0x42, 0x45, 0x43,
         0x23, 0x12, 0xA9, 0xCE, 0xAC, 0x9C, 0x8A, 0x00, 0x33, 0x26, 0x24, 0x12, 0x00, 0xA9, 0xBB, 0xAD,
         0xAB, 0xAA, 0x99, 0x08, 0x22, 0x44, 0x34, 0x43, 0x33, 0x12, 0x98, 0xDC, 0xBC, 0xBC, 0xAA, 0x09,
         0x21, 0x35, 0x35, 0x33, 0x13, 0x81, 0xBA, 0xBE, 0xBD, 0xBC, 0xBB, 0x8A, 0x31, 0x37, 0x44, 0x33,
         0x22, 0x81, 0xBA, 0xBE, 0xAD, 0xAB, 0x89, 0x00, 0x23, 0x34, 0x24, 0x12, 0x00, 0x98, 0x98, 0xA8,
         0xB9, 0xCC, 0xBC, 0xAC, 0x9A, 0x20, 0x45, 0x36, 0x25, 0x12, 0x91, 0xCB, 0xBD, 0xAD, 0xAB, 0x09,
         0x21, 0x44, 0x25, 0x23, 0x01, 0x80, 0xBA, 0xCB, 0xCB, 0xAA, 0x99, 0x80, 0x01, 0x21, 0x22, 0x35,
         0x35, 0x23, 0x12, 0xA8, 0xCD, 0xBC, 0xAD, 0x9B, 0x09, 0x52, 0x34, 0x34, 0x23, 0x12, 0xA0, 0xEB,
         0xBC, 0xAD, 0xAB, 0x9A, 0x28, 0x52, 0x34, 0x34, 0x24, 0x11, 0x98, 0xBB, 0xAE, 0xBB, 0xAB, 0x99,
         0x21, 0x53, 0x43, 0x22, 0x21, 0x10, 0x80, 0xB9, 0xEB, 0xCB, 0xAC, 0xAB, 0x8B, 0x29, 0x55, 0x35,
         0x25, 0x13, 0x01, 0xB9, 0xDC, 0xBC, 0xAC, 0x9A, 0x08, 0x33, 0x26, 0x24, 0x13, 0x11, 0x98, 0xBB,
         0xBD, 0xBB, 0xAA, 0x88, 0x18, 0x31, 0x44, 0x34, 0x33, 0x13, 0x82, 0xB8, 0xEC, 0xCC, 0xAC, 0x9B,
         0x0A, 0x31, 0x54, 0x43, 0x24, 0x23, 0x82, 0xA9, 0xCD, 0xCB, 0xAC, 0xAA, 0x89, 0x20, 0x44, 0x34,
         0x33, 0x13, 0x81, 0xB9, 0xCD, 0xAC, 0x9B, 0x8A, 0x10, 0x33, 0x34, 0x33, 0x24, 0x11, 0x80, 0xBA,
         0xCC, 0xBC, 0xCC, 0xCB, 0x9A, 0x19, 0x62, 0x34, 0x35, 0x23, 0x13, 0xA0, 0xEB, 0xCC, 0xAB, 0x9C,
         0x88, 0x20, 0x33, 0x35, 0x33, 0x22, 0x90, 0xBA, 0xBC, 0xBC, 0xBA, 0xAA, 0x88, 0x32, 0x45, 0x33,
         0x34, 0x33, 0x23, 0xA0, 0xED, 0xBC, 0xAD, 0xAB, 0x99, 0x10, 0x43, 0x36, 0x34, 0x33, 0x11, 0x98,
         0xBB, 0xBE, 0xAD, 0x9C, 0x9A, 0x18, 0x31, 0x53, 0x33, 0x24, 0x12, 0x88, 0xBC, 0xAD, 0xAC, 0x99,
         0x00, 0x21, 0x34, 0x35, 0x32, 0x01, 0x98, 0xBA, 0xBC, 0xBD, 0xCC, 0xAB, 0xAA, 0x08, 0x42, 0x44,
         0x35, 0x34, 0x23, 0x01, 0xB9, 0xBE, 0xBC, 0xAC, 0x9A, 0x88, 0x32, 0x35, 0x25, 0x21, 0x80, 0x99,
         0xBB, 0xBC, 0xAC, 0x99, 0x10, 0x33, 0x35, 0x33, 0x24, 0x33, 0x13, 0xA8, 0xDD, 0xBC, 0xBC, 0xBC,
         0xAB, 0x8A, 0x32, 0x47, 0x43, 0x32, 0x22, 0x00, 0xA8, 0xBD, 0xBD, 0xBB, 0x9A, 0x08, 0x22, 0x44,
         0x43, 0x33, 0x12, 0xA8, 0xCC, 0xCB, 0xBB, 0xAB, 0x9A, 0x31, 0x37, 0x44, 0x32, 0x12, 0x11, 0x90,
         0xCA, 0xDC, 0xCB, 0xAB, 0x9B, 0x8A, 0x10, 0x63, 0x44, 0x24, 0x13, 0x02, 0xA8, 0xBB, 0xBE, 0xBC,
         0xAA, 0x09, 0x32, 0x36, 0x33, 0x33, 0x21, 0xA8, 0xCC, 0xBD, 0xBC, 0x9A, 0x89, 0x20, 0x41, 0x44,
         0x43, 0x33, 0x12, 0x81, 0xA9, 0xEB, 0xBC, 0xBD, 0xAB, 0x9A, 0x20, 0x43, 0x44, 0x24, 0x33, 0x12,
         0xA8, 0xEB, 0xCB, 0xAB, 0xAA, 0x89, 0x21, 0x45, 0x34, 0x14, 0x02, 0x90, 0xBA, 0xCC, 0xAC, 0xAC,
         0x9A, 0x00, 0x33, 0x35, 0x43, 0x33, 0x23, 0x02, 0xB8, 0xCD, 0xBB, 0xBC, 0xBC, 0xAB, 0x0A, 0x41,
         0x45, 0x33, 0x24, 0x13, 0x81, 0xCA, 0xBD, 0xAD, 0x9B, 0x1A, 0x30, 0x34, 0x35, 0x33, 0x23, 0x90,
         0xCC, 0xBC, 0xAC, 0x9B, 0x9A, 0x89, 0x31, 0x45, 0x34, 0x33, 0x22, 0x13, 0x81, 0xD9, 0xDC, 0xCB,
         0xBB, 0x9A, 0x09, 0x30, 0x44, 0x35, 0x24, 0x02, 0x90, 0xBA, 0xCC, 0xAB, 0xAC, 0x8A, 0x30, 0x44,
         0x34, 0x14, 0x12, 0x01, 0xB8, 0xEB, 0xBC, 0xAC, 0x9B, 0x89, 0x11, 0x43, 0x35, 0x34, 0x24, 0x11,
         0x98, 0xAA, 0xDB, 0xCB, 0xCB, 0xAA, 0x89, 0x21, 0x43, 0x34, 0x34, 0x33, 0x03, 0xC8, 0xCC, 0xBC,
         0xAB, 0x8B, 0x19, 0x43, 0x36, 0x25, 0x13, 0x81, 0xA8, 0xBC, 0xBC, 0xAD, 0xAB, 0x9A, 0x11, 0x34,
         0x34, 0x34, 0x43, 0x22, 0x02, 0xA8, 0xCC, 0xBC, 0xBB, 0xAC, 0x9B, 0x09, 0x53, 0x44, 0x23, 0x13,
         0x01, 0x98, 0xCC, 0xBC, 0xAD, 0x99, 0x10, 0x33, 0x35, 0x24, 0x24, 0x11, 0x90, 0xDB, 0xBC, 0xAC,
         0xAB, 0x9A, 0x89, 0x31, 0x36, 0x35, 0x32, 0x22, 0x11, 0x88, 0xCA, 0xCD, 0xAB, 0xAB, 0x99, 0x10,
         0x31, 0x45, 0x34, 0x23, 0x01, 0xBA, 0xBE, 0xBC, 0xAC, 0xAA, 0x08, 0x53, 0x35, 0x34, 0x23, 0x12,
         0x88, 0xBB, 0xCE, 0xCB, 0xAB, 0xAA, 0x08, 0x20, 0x42, 0x44, 0x43, 0x23, 0x02, 0x88, 0xBA, 0xBC,
         0xAD, 0xAC, 0x9A, 0x10, 0x34, 0x25, 0x23, 0x13, 0x01, 0xBA, 0xCF, 0xBC, 0xBB, 0x9A, 0x00, 0x32,
         0x46, 0x43, 0x24, 0x13, 0x81, 0x99, 0xBC, 0xBC, 0xBC, 0xCB, 0x99, 0x18, 0x32, 0x34, 0x34, 0x33,
         0x32, 0x81, 0xCA, 0xBD, 0xBB, 0xAB, 0x89, 0x18, 0x63, 0x44, 0x34, 0x13, 0x81, 0xB9, 0xBD, 0xAF,
         0xAC, 0xAB, 0x8A, 0x21, 0x35, 0x35, 0x33, 0x24, 0x02, 0x90, 0xCB, 0xBC, 0xCB, 0xBA, 0x9A, 0x89,
         0x20, 0x53, 0x34, 0x23, 0x13, 0x01, 0xA0, 0xCB, 0xBE, 0xAC, 0x8A, 0x20, 0x53, 0x34, 0x25, 0x23,
         0x02, 0xB8, 0xDD, 0xCB, 0xAC, 0xAB, 0x99, 0x18, 0x52, 0x44, 0x33, 0x23, 0x13, 0x81, 0xA9, 0xCC,
         0xBC, 0xAD, 0xA9, 0x88, 0x00, 0x22, 0x43, 0x34, 0x13, 0x81, 0xC9, 0xCB, 0xBB, 0xBB, 0x8C, 0x38,
         0x73, 0x35, 0x24, 0x22, 0x82, 0xA1, 0xDA, 0xDC, 0xCB, 0xAB, 0x9A, 0x09, 0x22, 0x35, 0x35, 0x24,
         0x13, 0x01, 0x99, 0xBB, 0xCC, 0xBB, 0xAB, 0x9A, 0x10, 0x43, 0x24, 0x33, 0x14, 0x02, 0xB8, 0xDD,
         0xBC, 0x9B, 0x8A, 0x38, 0x62, 0x53, 0x24, 0x24, 0x12, 0x90, 0xBA, 0xCC, 0xAD, 0xAC, 0xAA, 0x8A,
         0x11, 0x34, 0x34, 0x34, 0x23, 0x13, 0x88, 0xBB, 0xBE, 0xAB, 0xAB, 0x99, 0x18, 0x42, 0x35, 0x33,
         0x13, 0x98, 0xCC, 0xCC, 0xCB, 0xBB, 0x9B, 0x29, 0x73, 0x43, 0x34, 0x33, 0x24, 0x02, 0xA8, 0xCC,
         0xCC, 0xAB, 0xAC, 0x99, 0x09, 0x22, 0x35, 0x34, 0x22, 0x11, 0x08, 0xAA, 0xBB, 0xAD, 0x9A, 0x80,
         0x23, 0x25, 0x33, 0x43, 0x22, 0x90, 0xEC, 0xDC, 0xBB, 0xAC, 0xAA, 0x09, 0x30, 0x46, 0x34, 0x24,
         0x13, 0x02, 0x80, 0xAB, 0xBD, 0xBD, 0xAB, 0xAB, 0x98, 0x10, 0x33, 0x35, 0x34, 0x13, 0x00, 0xAB,
         0xAC, 0xBB, 0x9A, 0x18, 0x44, 0x36, 0x25, 0x23, 0x02, 0x98, 0xDB, 0xCC, 0xCC, 0xAB, 0xAB, 0x0A,
         0x10, 0x34, 0x36, 0x34, 0x33, 0x23, 0x01, 0xA8, 0xCB, 0xBD, 0xAD, 0xBB, 0x9A, 0x00, 0x23, 0x35,
         0x23, 0x21, 0x98, 0xCB, 0xBD, 0xBB, 0x89, 0x32, 0x46, 0x42, 0x32, 0x33, 0x14, 0x81, 0xB8, 0xCD,
         0xCC, 0xCB, 0xAC, 0x9A, 0x09, 0x31, 0x35, 0x25, 0x24, 0x12, 0x11, 0x98, 0xAA, 0xAD, 0xAC, 0xBA,
         0x99, 0x88, 0x22, 0x34, 0x25, 0x12, 0x80, 0xBA, 0xBD, 0xBC, 0xAB, 0x09, 0x51, 0x44, 0x34, 0x23,
         0x23, 0x12, 0x90, 0xFA, 0xDB, 0xAC, 0xAC, 0x9A, 0x0A, 0x28, 0x43, 0x35, 0x24, 0x23, 0x12, 0x80,
         0xAA, 0xBD, 0xAD, 0xAB, 0x9A, 0x00, 0x33, 0x35, 0x24, 0x13, 0x80, 0xDB, 0xBC, 0xBC, 0x9A, 0x09,
         0x31, 0x73, 0x33, 0x34, 0x23, 0x13, 0x92, 0xC9, 0xDC, 0xBD, 0xAC, 0x9C, 0x0A, 0x28, 0x42, 0x34,
         0x24, 0x23, 0x02, 0x98, 0xAA, 0xBC, 0xAC, 0xAB, 0x9C, 0x89, 0x20, 0x35, 0x25, 0x23, 0x02, 0xB8,
         0xCD, 0xBD, 0xAB, 0x8B, 0x20, 0x63, 0x43, 0x24, 0x23, 0x12, 0x80, 0xB9, 0xCC, 0xDB, 0xBB, 0xAD,
         0x9B, 0x8A, 0x30, 0x44, 0x34, 0x24, 0x23, 0x12, 0x98, 0xBB, 0xAE, 0x9C, 0x8A, 0x88, 0x12, 0x24,
         0x25, 0x02, 0x90, 0xDB, 0xBC, 0xAC, 0x9B, 0x89, 0x11, 0x34, 0x35, 0x34, 0x33, 0x24, 0x23, 0x82,
         0xC8, 0xDC, 0xBD, 0xCB, 0xAB, 0x8A, 0x28, 0x43, 0x25, 0x14, 0x02, 0x00, 0x89, 0x89, 0x8A, 0x89,
         0x08, 0x02, 0x83, 0x83, 0x04, 0x22, 0x01, 0xEC, 0xCF, 0xBC, 0xAC, 0xAA, 0x88, 0x32, 0x46, 0x34,
         0x33, 0x23, 0x11, 0x80, 0x9A, 0xCC, 0xBC, 0xAD, 0xBB, 0xAA, 0x99, 0x10, 0x42, 0x34, 0x25, 0x12,
         0x10, 0x09, 0x9A, 0x8B, 0x8A, 0x10, 0x27, 0x26, 0x23, 0x03, 0x98, 0xBE, 0xBD, 0xAE, 0xAB, 0xAA,
         0x08, 0x32, 0x35, 0x43, 0x33, 0x34, 0x32, 0x23, 0x12, 0x90, 0xDC, 0xBD, 0xAE, 0xBB, 0xA9, 0x00,
         0x12, 0x15, 0x13, 0x02, 0x08, 0x8B, 0x0A, 0x30, 0x54, 0x24, 0x23, 0x13, 0x12, 0x01, 0xA8, 0xDD,
         0xCC, 0xBC, 0xCC, 0xAB, 0x9B, 0x08, 0x43, 0x44, 0x33, 0x33, 0x33, 0x24, 0x12, 0x00, 0x99, 0xBC,
         0xBF, 0xBC, 0xCB, 0x99, 0x08, 0x22, 0x23, 0x02, 0x80, 0x9B, 0x8E, 0x0B, 0x48, 0x55, 0x34, 0x23,
         0x23, 0x02, 0x80, 0xCA, 0xBE, 0xBD, 0xBB, 0xBB, 0xAA, 0x8A, 0x28, 0x62, 0x43, 0x33, 0x25, 0x24,
         0x14, 0x13, 0x88, 0xBB, 0xAE, 0xAC, 0x9A, 0x89, 0x01, 0x13, 0x03, 0xD8, 0xCC, 0xAC, 0x9B, 0x18,
         0x42, 0x43, 0x34, 0x43, 0x23, 0x23, 0x23, 0x14, 0x91, 0xFB, 0xCD, 0xAC, 0xBB, 0x8A, 0x08, 0x22,
         0x43, 0x33, 0x14, 0x01, 0x01, 0x33, 0x36, 0x23, 0x00, 0xAC, 0xAE, 0xBB, 0xA9, 0x98, 0x14, 0x14,
         0x91, 0xFB, 0xAD, 0xAC, 0x8A, 0x28, 0x43, 0x35, 0x34, 0x33, 0x12, 0x80, 0xAB, 0xBC, 0xBB, 0xBC,
         0xCB, 0xBA, 0xBA, 0xAA, 0xBB, 0x9C, 0x41, 0x47, 0x24, 0x33, 0x22, 0x01, 0x98, 0xBB, 0x9F, 0x09,
         0x22, 0x16, 0x02, 0xC0, 0xDA, 0xBC, 0xAC, 0x9B, 0x0A, 0x31, 0x35, 0x33, 0x23, 0x22, 0x24, 0x34,
         0x33, 0x12, 0xA9, 0xBE, 0xBE, 0xAD, 0xBB, 0x99, 0x01, 0x22, 0x02, 0x00, 0x18, 0x40, 0x42, 0x43,
         0x34, 0x43, 0x13, 0x90, 0xBA, 0x8A, 0x23, 0x07, 0xB0, 0xDE, 0xBC, 0xAC, 0xAC, 0x9A, 0x18, 0x53,
         0x25, 0x14, 0x13, 0x11, 0x10, 0x00, 0x99, 0xAB, 0xAC, 0xB9, 0xEA, 0xCA, 0xBA, 0x99, 0x09, 0x00,
         0x10, 0x43, 0x36, 0x24, 0x12, 0x89, 0x8A, 0x28, 0x35, 0x16, 0x24, 0x13, 0x01, 0xBD, 0xCF, 0xBB,
         0x9C, 0x09, 0x00, 0x02, 0x13, 0x24, 0x24, 0x21, 0x21, 0x32, 0x34, 0x12, 0xC9, 0xCD, 0xAA, 0x9A,
         0xA9, 0xC9, 0xB9, 0x88, 0x80, 0x88, 0x2A, 0x71, 0x44, 0x32, 0x90, 0xAA, 0x09, 0x37, 0x36, 0x33,
         0x13, 0x90, 0xDC, 0xCD, 0xAC, 0xAB, 0x08, 0x21, 0x24, 0x02, 0x81, 0x00, 0x08, 0x18, 0x51, 0x54,
         0x33, 0x13, 0xB9, 0xCD, 0xBB, 0x99, 0x89, 0x88, 0x11, 0x23, 0x03, 0xDC, 0xAE, 0x8C, 0x18, 0x22,
         0x33, 0x25, 0x26, 0x23, 0x02, 0xBA, 0xBD, 0x9C, 0x9A, 0x9A, 0xAA, 0x99, 0x10, 0x02, 0xA8, 0xAB,
         0x64, 0x37, 0x43, 0x01, 0x88, 0x8A, 0x09, 0x08, 0x99, 0x11, 0x24, 0xA3, 0xFD, 0xCD, 0xAA, 0x18,
         0x31, 0x31, 0x08, 0x89, 0x89, 0x80, 0x13, 0x77, 0x35, 0x24, 0x82, 0xCA, 0xBD, 0xBB, 0x9A, 0x88,
         0x12, 0x25, 0x14, 0x82, 0xBA, 0xAD, 0x8A, 0x41, 0x34, 0x33, 0x32, 0x00, 0xB9, 0xBF, 0xBC, 0x9A,
         0x10, 0x15, 0x03, 0x98, 0xBA, 0xAC, 0x9D, 0x9B, 0x19, 0x55, 0x25, 0x24, 0x11, 0x88, 0xA9, 0xBB,
         0xCC, 0xAB, 0x8A, 0x30, 0x32, 0x91, 0xEA, 0xBA, 0x88, 0x22, 0x53, 0x44, 0x44, 0x22, 0x81, 0xCA,
         0xBB, 0x89, 0x11, 0x01, 0xA8, 0xBB, 0xCA, 0xDC, 0xBC, 0x9C, 0x19, 0x52, 0x22, 0x11, 0x21, 0x36,
         0x26, 0x23, 0x81, 0x99, 0xAD, 0xAC, 0xBD, 0xAB, 0x09, 0x22, 0x05, 0x92, 0xB9, 0x9A, 0x39, 0x61,
         0x42, 0x43, 0x34, 0x13, 0xA0, 0xCC, 0xBB, 0x89, 0x11, 0x81, 0xB9, 0xBA, 0xBC, 0xCD, 0xBD, 0xAB,
         0x38, 0x45, 0x34, 0x23, 0x24, 0x33, 0x22, 0xA9, 0xAF, 0x9D, 0x8A, 0x99, 0x98, 0x98, 0x80, 0x02,
         0x98, 0xBD, 0x8C, 0x40, 0x54, 0x23, 0x13, 0x11, 0x12, 0x82, 0xC9, 0xBC, 0x9A, 0x20, 0x01, 0xCC,
         0xBE, 0xAB, 0xAA, 0xDB, 0xBC, 0x8A, 0x52, 0x36, 0x25, 0x23, 0x12, 0x01, 0xA9, 0xAF, 0xAC, 0x89,
         0x20, 0x33, 0x02, 0xB8, 0xCC, 0xAD, 0xAC, 0x89, 0x40, 0x54, 0x23, 0x03, 0x98, 0xBB, 0xAB, 0x89,
         0x21, 0x35, 0x26, 0x12, 0xB9, 0xCF, 0xBB, 0x9C, 0x08, 0x11, 0x32, 0x34, 0x33, 0x12, 0x88, 0x9C,
         0x0A, 0x40, 0x32, 0x02, 0x90, 0xB8, 0xD8, 0xDD, 0xBC, 0xAB, 0x09, 0x22, 0x12, 0x80, 0x30, 0x62,
         0x32, 0x11, 0x22, 0x36, 0x37, 0x03, 0x90, 0xBB, 0xAC, 0xAB, 0xAD, 0xBE, 0xAB, 0x9A, 0x89, 0x81,
         0x24, 0x37, 0x35, 0x24, 0x00, 0x9A, 0xAB, 0x8B, 0x08, 0x22, 0x26, 0x14, 0xA1, 0xDD, 0xCC, 0xAB,
         0x0A, 0x20, 0x43, 0x24, 0x22, 0x01, 0xA9, 0xBB, 0x8A, 0x45, 0x36, 0x33, 0x01, 0xB9, 0xAF, 0xAD,
         0xAB, 0x9B, 0x18, 0x43, 0x24, 0x13, 0x00, 0x89, 0x9A, 0x89, 0x09, 0x72, 0x34, 0x34, 0x02, 0xB9,
         0xDC, 0xBB, 0xCA, 0x9A, 0x89, 0x21, 0x52, 0x11, 0x98, 0xBB, 0x8A, 0x42, 0x45, 0x35, 0x24, 0x33,
         0x01, 0xCA, 0xBD, 0xAD, 0x9A, 0x8A, 0x80, 0x08, 0x22, 0x14, 0x02, 0x80, 0x8A, 0x39, 0x71, 0x21,
         0x22, 0x44, 0x24, 0x13, 0xC1, 0xEB, 0xCB, 0xAB, 0x9B, 0x9A, 0x08, 0x22, 0x23, 0xA2, 0xBC, 0x8B,
         0x72, 0x46, 0x24, 0x33, 0x12, 0x81, 0xCB, 0xBE, 0xAC, 0x9B, 0x08, 0x11, 0x12, 0x02, 0x01, 0x88,
         0xAC, 0x9D, 0x1A, 0x51, 0x44, 0x23, 0x24, 0x22, 0x02, 0xA8, 0xBE, 0xAE, 0x9B, 0x99, 0x88, 0x80,
         0x80, 0x08, 0x90, 0xC9, 0x0A, 0x73, 0x46, 0x43, 0x23, 0x01, 0x98, 0xCA, 0xCC, 0xBB, 0xAB, 0x18,
         0x42, 0x23, 0x02, 0xA8, 0xBC, 0xAE, 0xAC, 0x0A, 0x50, 0x44, 0x25, 0x22, 0x01, 0x98, 0xBA, 0xBC,
         0xAC, 0x89, 0x21, 0x22, 0xA1, 0xFB, 0xBD, 0xAA, 0x0A, 0x40, 0x54, 0x34, 0x23, 0x02, 0xB9, 0xBD,
         0xBB, 0x9A, 0x20, 0x33, 0x16, 0x03, 0xB8, 0xDC, 0xBC, 0xAB, 0x19, 0x31, 0x34, 0x34, 0x23, 0x12,
         0x01, 0x89, 0x08, 0x41, 0x32, 0xA2, 0xFC, 0xBC, 0xAD, 0x9C, 0x9B, 0x89, 0x11, 0x34, 0x26, 0x12,
         0x12, 0x00, 0x18, 0x88, 0x99, 0x89, 0x01, 0x13, 0x92, 0xE0, 0xB9, 0xBA, 0xDD, 0xBD, 0xAE, 0xAA,
         0x0A, 0x20, 0x45, 0x53, 0x24, 0x23, 0x01, 0xA9, 0xBB, 0xAC, 0x99, 0x88, 0x08, 0x99, 0xCD, 0xCC,
         0xAC, 0x9A, 0x31, 0x37, 0x34, 0x23, 0x00, 0xAA, 0xAE, 0xBB, 0x99, 0x32, 0x36, 0x25, 0x01, 0xA8,
         0xCC, 0xBC, 0xAB, 0x8A, 0x28, 0x34, 0x35, 0x23, 0x11, 0x98, 0x99, 0x89, 0x01, 0x23, 0x33, 0x12,
         0xBE, 0xDF, 0xCB, 0xAA, 0x99, 0x12, 0x35, 0x34, 0x23, 0x02, 0xB9, 0xBD, 0xAC, 0x8B, 0x30, 0x44,
         0x43, 0x23, 0x83, 0xB8, 0xDD, 0xBB, 0xAC, 0x8A, 0x00, 0x21, 0x32, 0x25, 0x14, 0x12, 0x01, 0x01,
         0x11, 0x11, 0x98, 0xCC, 0xCC, 0xBC, 0xBC, 0xAB, 0x8B, 0x20, 0x27, 0x25, 0x13, 0x02, 0x99, 0xAC,
         0x9E, 0xAB, 0x19, 0x42, 0x35, 0x24, 0x03, 0x91, 0xBA, 0xBE, 0xBC, 0xAB, 0x8A, 0x10, 0x33, 0x25,
         0x24, 0x23, 0x23, 0x21, 0x00, 0x89, 0x89, 0xCB, 0xCD, 0xBC, 0xBB, 0xAB, 0x9A, 0x88, 0x34, 0x47,
         0x24, 0x12, 0x90, 0xBB, 0xAF, 0xAB, 0x9A, 0x21, 0x37, 0x26, 0x33, 0x02, 0xA8, 0xCD, 0xAC, 0xAC,
         0x9A, 0x09, 0x31, 0x34, 0x24, 0x12, 0x00, 0x88, 0x88, 0x19, 0x18, 0x31, 0x22, 0xD8, 0xED, 0xBC,
         0xBB, 0x99, 0x41, 0x63, 0x33, 0x23, 0x90, 0xCC, 0xBD, 0xAC, 0x09, 0x32, 0x46, 0x33, 0x24, 0x01,
         0xB8, 0xCC, 0xBC, 0x9B, 0x8A, 0x18, 0x11, 0x23, 0x12, 0x01, 0x01, 0x30, 0x72, 0x53, 0x23, 0x82,
         0xB9, 0xCD, 0xBC, 0xAA, 0x8A, 0x21, 0x35, 0x34, 0x02, 0xA8, 0xBD, 0xBD, 0xBB, 0x8B, 0x18, 0x45,
         0x35, 0x25, 0x22, 0x11, 0x88, 0xAA, 0xBD, 0xBD, 0xAB, 0x9B, 0x89, 0x10, 0x32, 0x26, 0x24, 0x23,
         0x01, 0x80, 0x89, 0x89, 0x8A, 0x8B, 0x9B, 0x8A, 0xA8, 0xEB, 0xC9, 0x82, 0x24, 0x14, 0xC0, 0xBF,
         0xAE, 0xAC, 0x9B, 0x19, 0x45, 0x45, 0x43, 0x13, 0x01, 0xA9, 0xBD, 0xBC, 0xAB, 0x9A, 0x18, 0x33,
         0x34, 0x21, 0x80, 0x99, 0x99, 0x00, 0x32, 0x37, 0x33, 0x10, 0xAC, 0xAF, 0x9B, 0x08, 0x33, 0x26,
         0x15, 0x01, 0xA9, 0xCD, 0xBD, 0xAB, 0x9A, 0x30, 0x54, 0x24, 0x24, 0x22, 0x81, 0xB9, 0xCB, 0xBC,
         0xAA, 0x99, 0x08, 0x10, 0x22, 0x12, 0x82, 0x91, 0x11, 0x63, 0x43, 0x11, 0xA8, 0xBC, 0xAC, 0x8A,
         0x29, 0x71, 0x44, 0x34, 0x13, 0xA1, 0xFA, 0xCB, 0xBC, 0xAC, 0x9B, 0x19, 0x42, 0x45, 0x33, 0x14,
         0x12, 0x81, 0xBA, 0xBD, 0xAC, 0x9A, 0x09, 0x01, 0x22, 0x22, 0x22, 0x01, 0xA8, 0xBB, 0x9B, 0x89,
         0xA9, 0xDD, 0x9D, 0x1A, 0x51, 0x34, 0x35, 0x25, 0x24, 0x02, 0xB8, 0xCE, 0xAC, 0xAC, 0xAA, 0x89,
         0x10, 0x44, 0x34, 0x25, 0x21, 0x00, 0x99, 0xBB, 0xBD, 0xAB, 0x8A, 0x10, 0x24, 0x14, 0x12, 0x00,
         0x90, 0xA9, 0xBC, 0x9E, 0x9A, 0x89, 0x80, 0x80, 0x22, 0x47, 0x35, 0x34, 0x32, 0x11, 0x90, 0xFB,
         0xCC, 0xBC, 0xBB, 0x8A, 0x18, 0x43, 0x35, 0x34, 0x14, 0x01, 0xA9, 0xAC, 0x9C, 0x9A, 0x88, 0x11,
         0x23, 0x25, 0x13, 0x80, 0xAB, 0xAB, 0x9A, 0xBA, 0xCE, 0xBC, 0xAA, 0x8A, 0x20, 0x73, 0x45, 0x44,
         0x23, 0x02, 0xA8, 0xCB, 0xBC, 0xAD, 0xAB, 0x9A, 0x00, 0x34, 0x25, 0x23, 0x22, 0x11, 0x88, 0xBC,
         0xBD, 0xAB, 0x89, 0x10, 0x22, 0x42, 0x44, 0x33, 0x13, 0xB0, 0xEB, 0xCB, 0xCB, 0xBC, 0xAC, 0x8A,
         0x30, 0x36, 0x34, 0x43, 0x23, 0x13, 0x81, 0xCB, 0xBE, 0xCB, 0xAB, 0xAA, 0x9A, 0x10, 0x45, 0x34,
         0x24, 0x02, 0x90, 0xA9, 0xBC, 0xAD, 0x9C, 0x09, 0x42, 0x43, 0x32, 0x12, 0x02, 0x81, 0xC9, 0xCC,
         0xCB, 0xAA, 0x9B, 0xAB, 0x8B, 0x58, 0x45, 0x35, 0x23, 0x13, 0x01, 0xA0, 0xCC, 0xCD, 0xAB, 0x9B,
         0x08, 0x21, 0x33, 0x36, 0x24, 0x13, 0xA0, 0xEB, 0xBB, 0xAB, 0x9B, 0x09, 0x30, 0x46, 0x34, 0x23,
         0x02, 0x88, 0x88, 0xAA, 0xCD, 0xBD, 0xAC, 0x9A, 0x08, 0x10, 0x43, 0x45, 0x34, 0x13, 0x81, 0xB9,
         0xBC, 0xAC, 0xAC, 0xAB, 0x0A, 0x42, 0x44, 0x23, 0x13, 0x12, 0x00, 0xC9, 0xCE, 0xAC, 0x9B, 0x08,
         0x21, 0x33, 0x53, 0x53, 0x22, 0x02, 0xA9, 0xCA, 0xAA, 0xDB, 0xDB, 0xAC, 0x99, 0x20, 0x34, 0x34,
         0x33, 0x25, 0x12, 0xA0, 0xDC, 0xBB, 0xAB, 0x8A, 0x80, 0x11, 0x53, 0x36, 0x33, 0x12, 0x98, 0xBA,
         0xCC, 0xBC, 0xBD, 0x9B, 0x18, 0x44, 0x43, 0x22, 0x22, 0x22, 0x01, 0xCA, 0xCD, 0xAB, 0xAB, 0xAA,
         0xBB, 0x9A, 0x73, 0x54, 0x33, 0x22, 0x01, 0x90, 0xB9, 0xCD, 0xAD, 0x9B, 0x09, 0x20, 0x33, 0x24,
         0x35, 0x24, 0x02, 0xA9, 0xAF, 0xAC, 0xAA, 0x99, 0x89, 0x32, 0x36, 0x35, 0x12, 0x81, 0x88, 0x99,
         0xA9, 0xDC, 0xCB, 0xBA, 0x99, 0x09, 0x10, 0x63, 0x45, 0x24, 0x13, 0x90, 0xBB, 0xBC, 0xAC, 0xBB,
         0xAA, 0x10, 0x45, 0x24, 0x23, 0x11, 0x01, 0x00, 0xDB, 0xCD, 0xAC, 0x9A, 0x08, 0x11, 0x33, 0x45,
         0x43, 0x23, 0x01, 0xB9, 0xBB, 0xCB, 0xDB, 0xDB, 0xAB, 0x8A, 0x31, 0x44, 0x24, 0x33, 0x24, 0x12,
         0xB9, 0xCE, 0xAB, 0x9B, 0x09, 0x08, 0x20, 0x53, 0x26, 0x23, 0x02, 0x90, 0xA9, 0xBC, 0xBE, 0xBD,
         0xAA, 0x10, 0x43, 0x34, 0x43, 0x22, 0x13, 0x81, 0xDA, 0xDB, 0xBA, 0xAA, 0xAB, 0x9C, 0x8A, 0x52,
         0x45, 0x33, 0x13, 0x02, 0x98, 0xCB, 0xBE, 0xBC, 0x8A, 0x18, 0x32, 0x34, 0x33, 0x34, 0x24, 0x82,
         0xC9, 0xBD, 0xAC, 0xAC, 0xAA, 0x8A, 0x30, 0x46, 0x34, 0x22, 0x01, 0x80, 0x99, 0xCA, 0xBC, 0xBC,
         0xAA, 0x89, 0x00, 0x21, 0x44, 0x36, 0x25, 0x02, 0x98, 0xCB, 0xCB, 0xAB, 0x9C, 0x0A, 0x30, 0x45,
         0x33, 0x23, 0x12, 0x01, 0x99, 0xDC, 0xCD, 0xAB, 0x9B, 0x09, 0x20, 0x43, 0x35, 0x25, 0x13, 0x81,
         0xA8, 0xAB, 0xBB, 0xBC, 0xAE, 0x9B, 0x0A, 0x32, 0x35, 0x34, 0x25, 0x23, 0x91, 0xDB, 0xCD, 0xAB,
         0x8A, 0x18, 0x21, 0x33, 0x36, 0x33, 0x13, 0x81, 0x99, 0xAA, 0xBD, 0xBF, 0xAD, 0xAB, 0x08, 0x32,
         0x26, 0x24, 0x33, 0x12, 0x90, 0xDB, 0xAC, 0xAB, 0x99, 0x88, 0x88, 0x10, 0x63, 0x34, 0x24, 0x02,
         0x81, 0xB9, 0xCD, 0xBD, 0xAC, 0x8A, 0x20, 0x43, 0x24, 0x24, 0x32, 0x12, 0x90, 0xCB, 0xBD, 0xAC,
         0xBB, 0xBA, 0x99, 0x42, 0x36, 0x25, 0x22, 0x00, 0x88, 0xA9, 0xCA, 0xBB, 0xAC, 0x9A, 0x18, 0x18,
         0x31, 0x47, 0x44, 0x23, 0x82, 0xBA, 0xAF, 0xAC, 0xAB, 0x9A, 0x10, 0x44, 0x34, 0x33, 0x02, 0x81,
         0x88, 0x99, 0xDA, 0xCC, 0xCB, 0xAA, 0x99, 0x00, 0x43, 0x36, 0x34, 0x23, 0x90, 0xCA, 0xAC, 0xBB,
         0xAA, 0x9A, 0x08, 0x33, 0x36, 0x34, 0x23, 0x34, 0x22, 0xB0, 0xDE, 0xBC, 0xBC, 0x9A, 0x08, 0x31,
         0x35, 0x35, 0x33, 0x12, 0x88, 0xAA, 0xAC, 0xBC, 0xAD, 0xAC, 0x9A, 0x10, 0x53, 0x34, 0x43, 0x32,
         0x01, 0xC8, 0xDB, 0xCB, 0x9B, 0x8A, 0x08, 0x20, 0x42, 0x44, 0x24, 0x23, 0x02, 0xA0, 0xDB, 0xCD,
         0xAC, 0xAB, 0x8A, 0x22, 0x44, 0x33, 0x24, 0x13, 0x11, 0x98, 0xCB, 0xBC, 0xBC, 0xBB, 0xAC, 0x09,
         0x52, 0x35, 0x35, 0x22, 0x81, 0xA9, 0xBC, 0xAD, 0xBB, 0x9A, 0x10, 0x42, 0x32, 0x24, 0x33, 0x25,
         0x24, 0x81, 0xC9, 0xCC, 0xBD, 0xBB, 0x9B, 0x29, 0x63, 0x34, 0x24, 0x12, 0x90, 0xA9, 0xBB, 0xAD,
         0xAB, 0x9A, 0x09, 0x20, 0x32, 0x45, 0x44, 0x23, 0x13, 0xA1, 0xDC, 0xDB, 0xBA, 0xAB, 0x8A, 0x20,
         0x44, 0x35, 0x33, 0x14, 0x12, 0x90, 0xCB, 0xBD, 0xAD, 0xAB, 0x99, 0x11, 0x53, 0x43, 0x33, 0x23,
         0x00, 0xA9, 0xBC, 0xBB, 0xBD, 0xBB, 0xBC, 0x8A, 0x31, 0x47, 0x34, 0x43, 0x12, 0x90, 0xDB, 0xCC,
         0xBB, 0x9A, 0x18, 0x32, 0x44, 0x32, 0x32, 0x12, 0x01, 0x80, 0x99, 0xBD, 0xBE, 0xBD, 0xAC, 0x8A,
         0x21, 0x35, 0x35, 0x23, 0x12, 0x98, 0xBC, 0xBD, 0xAB, 0x9B, 0x88, 0x21, 0x33, 0x35, 0x35, 0x33,
         0x12, 0x80, 0xBC, 0xCD, 0xAC, 0xBB, 0x8B, 0x18, 0x53, 0x34, 0x24, 0x23, 0x23, 0x01, 0xB9, 0xCE,
         0xBC, 0xAC, 0xAB, 0x89, 0x32, 0x46, 0x33, 0x24, 0x01, 0xA9, 0xBB, 0xAD, 0xBB, 0x9A, 0x89, 0x01,
         0x33, 0x35, 0x35, 0x44, 0x32, 0x11, 0xB8, 0xDD, 0xBC, 0xAB, 0xAA, 0x10, 0x52, 0x53, 0x23, 0x23,
         0x01, 0x88, 0xAA, 0xCC, 0xBC, 0xBD, 0xAB, 0x8A, 0x31, 0x54, 0x34, 0x24, 0x12, 0x90, 0xCA, 0xBC,
         0xAC, 0x99, 0x89, 0x18, 0x11, 0x43, 0x34, 0x35, 0x33, 0x23, 0x90, 0xEC, 0xBC, 0xAD, 0x9B, 0x09,
         0x32, 0x44, 0x24, 0x22, 0x12, 0x90, 0xB9, 0xCB, 0xBB, 0xAD, 0xBB, 0xAB, 0x19, 0x63, 0x35, 0x34,
         0x23, 0x02, 0xA8, 0xCD, 0xBC, 0xBC, 0x99, 0x19, 0x30, 0x43, 0x44, 0x32, 0x23, 0x02, 0xB9, 0xFB,
         0xCB, 0xAC, 0xAA, 0x09, 0x21, 0x34, 0x34, 0x24, 0x23, 0x01, 0x80, 0xAA, 0xBE, 0xBC, 0xBC, 0x9C,
         0x09, 0x32, 0x46, 0x43, 0x33, 0x81, 0xB9, 0xCD, 0xBB, 0xAB, 0x8A, 0x20, 0x53, 0x43, 0x12, 0x12,
         0x12, 0x11, 0x02, 0xD9, 0xDC, 0xDB, 0xBB, 0x9C, 0x0A, 0x31, 0x45, 0x24, 0x14, 0x01, 0x98, 0xBA,
         0xBC, 0xAC, 0x9B, 0x0A, 0x30, 0x34, 0x35, 0x24, 0x22, 0x81, 0xA9, 0xCC, 0xAC, 0xBB, 0x9A, 0x89,
         0x20, 0x53, 0x44, 0x34, 0x33, 0x24, 0x01, 0xB9, 0xCE, 0xBC, 0xBC, 0x9A, 0x18, 0x43, 0x34, 0x34,
         0x12, 0x81, 0xA9, 0xCB, 0xBB, 0xAA, 0x9A, 0xAA, 0xAB, 0x08, 0x45, 0x36, 0x25, 0x23, 0x01, 0xB9,
         0xCE, 0xBC, 0xAB, 0x8A, 0x31, 0x44, 0x43, 0x23, 0x22, 0x81, 0xA8, 0xBB, 0xCC, 0xBB, 0xAD, 0xBB,
         0x99, 0x21, 0x45, 0x34, 0x24, 0x22, 0x01, 0xA9, 0xBD, 0xBD, 0xBB, 0xAA, 0x08, 0x21, 0x36, 0x26,
         0x33, 0x12, 0x98, 0xBC, 0xBD, 0xBC, 0xAA, 0x09, 0x31, 0x35, 0x24, 0x22, 0x11, 0x01, 0x01, 0x98,
         0xDA, 0xBD, 0xCC, 0xBA, 0x9B, 0x08, 0x54, 0x44, 0x33, 0x22, 0x80, 0xCB, 0xBC, 0xBC, 0xAB, 0x8A,
         0x20, 0x44, 0x34, 0x23, 0x24, 0x11, 0x80, 0xCB, 0xBE, 0xBB, 0xAB, 0x8A, 0x18, 0x32, 0x45, 0x24,
         0x23, 0x12, 0x01, 0x01, 0xB9, 0xDE, 0xCC, 0xBB, 0x9A, 0x10, 0x63, 0x34, 0x24, 0x13, 0x90, 0xDA,
         0xBC, 0xBB, 0x9A, 0x08, 0x22, 0x43, 0x34, 0x14, 0x13, 0x21, 0x21, 0x01, 0xC9, 0xCF, 0xBC, 0xBB,
         0x99, 0x10, 0x52, 0x43, 0x34, 0x33, 0x81, 0xB9, 0xBC, 0xBC, 0xAA, 0xAA, 0x0A, 0x30, 0x44, 0x15,
         0x13, 0x02, 0x01, 0x98, 0xCD, 0xCC, 0xBB, 0x9B, 0x0A, 0x28, 0x53, 0x46, 0x34, 0x33, 0x02, 0xB8,
         0xDC, 0xCB, 0xBB, 0xAB, 0x09, 0x42, 0x44, 0x23, 0x01, 0x90, 0xA8, 0x80, 0x80, 0x00, 0x00, 0x89,
         0xBE, 0xBF, 0xAA, 0x30, 0x46, 0x25, 0x13, 0x90, 0xCA, 0xBC, 0xBD, 0xAB, 0x08, 0x52, 0x34, 0x33,
         0x23, 0x00, 0x98, 0xBB, 0xAE, 0xAC, 0x99, 0x88, 0x88, 0xA8, 0x09, 0x31, 0x45, 0x34, 0x23, 0x22,
         0x12, 0xA9, 0xEF, 0xBB, 0xAC, 0x09, 0x21, 0x35, 0x34, 0x33, 0x03, 0xB8, 0xCF, 0xBB, 0xAB, 0x89,
         0x21, 0x33, 0x44, 0x33, 0x14, 0x01, 0x80, 0x18, 0x10, 0xA9, 0xDF, 0xBC, 0xBB, 0x8A, 0x20, 0x34,
         0x36, 0x43, 0x23, 0x90, 0xDB, 0xBB, 0xAB, 0x8A, 0x89, 0x08, 0x41, 0x35, 0x24, 0x03, 0x01, 0x11,
         0x80, 0xBE, 0xBF, 0xAD, 0x8A, 0x08, 0x12, 0x33, 0x36, 0x43, 0x22, 0x80, 0xCB, 0xAC, 0xAB, 0xAB,
         0xBB, 0x88, 0x44, 0x45, 0x22, 0x01, 0x80, 0x80, 0x89, 0xBA, 0xAF, 0xAA, 0x89, 0x88, 0xA8, 0x81,
         0x56, 0x45, 0x33, 0x11, 0x98, 0xCB, 0xBD, 0xCC, 0xAB, 0x8A, 0x32, 0x36, 0x23, 0x13, 0x81, 0x90,
         0xC9, 0xBC, 0xAC, 0x09, 0x21, 0x14, 0x82, 0x88, 0x11, 0x22, 0x01, 0x98, 0x1C, 0x40, 0xA2, 0xEF,
         0xCC, 0xAA, 0x08, 0x42, 0x34, 0x35, 0x24, 0x13, 0xA0, 0xDD, 0xCB, 0xAA, 0x89, 0x10, 0x21, 0x24,
         0x24, 0x02, 0xA8, 0xBB, 0x8B, 0x31, 0x43, 0x81, 0xC9, 0xBB, 0xBB, 0xAC, 0x0B, 0x64, 0x46, 0x23,
         0x81, 0xDA, 0xCB, 0xAB, 0x8B, 0x09, 0x32, 0x37, 0x34, 0x23, 0x80, 0xA9, 0x9A, 0x9A, 0xBB, 0xBE,
         0xAC, 0x9A, 0x89, 0x99, 0x08, 0x55, 0x45, 0x32, 0x01, 0x99, 0xBB, 0xBB, 0xAC, 0xAB, 0x18, 0x45,
         0x25, 0x82, 0xA9, 0xBC, 0x9A, 0x89, 0x88, 0x08, 0x41, 0x42, 0x81, 0xBA, 0x9C, 0x64, 0x46, 0x23,
         0x02, 0xA8, 0xDB, 0xAD, 0xBC, 0xAB, 0x09, 0x53, 0x34, 0x23, 0x82, 0x98, 0xAA, 0xBB, 0xBB, 0x08,
         0x45, 0x34, 0x12, 0xCA, 0xAD, 0x9A, 0x08, 0x01, 0x13, 0x32, 0x33, 0xB1, 0xFF, 0xAC, 0x99, 0x21,
         0x25, 0x24, 0x23, 0x22, 0x81, 0xDA, 0xCD, 0xBA, 0x9A, 0x00, 0x11, 0x11, 0x43, 0x43, 0x02, 0xA0,
         0xCB, 0x0A, 0x21, 0x32, 0x98, 0xAA, 0x9A, 0xA0, 0xFA, 0xBC, 0x18, 0x46, 0x24, 0x81, 0xCB, 0xAD,
         0xAA, 0xAA, 0x9B, 0x29, 0x65, 0x34, 0x14, 0x01, 0x88, 0x89, 0x99, 0xBC, 0xBC, 0x9B, 0x28, 0x24,
         0x82, 0x81, 0x31, 0x44, 0x22, 0x9A, 0xAD, 0x09, 0x10, 0xB0, 0xDA, 0x0A, 0x54, 0x35, 0x03, 0x90,
         0x88, 0x89, 0xBA, 0xFF, 0xAB, 0x9A, 0x10, 0x11, 0x81, 0x01, 0x44, 0x36, 0x22, 0x11, 0x08, 0x88,
         0xBC, 0xCE, 0xAC, 0x8A, 0x31, 0x34, 0x23, 0x81, 0xA9, 0xBC, 0xBE, 0xAD, 0x89, 0x41, 0x44, 0x23,
         0x01, 0x88, 0x88, 0x88, 0x89, 0x08, 0x31, 0x24, 0xF8, 0xCE, 0xBC, 0x9B, 0x09, 0x22, 0x35, 0x35,
         0x43, 0x12, 0xA8, 0xCB, 0xAC, 0x8A, 0x20, 0x22, 0x22, 0x03, 0xB1, 0xEC, 0xCC, 0xAC, 0x09, 0x31,
         0x33, 0x24, 0x11, 0x01, 0x88, 0x98, 0x09, 0x74, 0x34, 0x24, 0x80, 0xCC, 0xBC, 0xBC, 0xAA, 0x8A,
         0x20, 0x44, 0x24, 0x23, 0x00, 0x89, 0x09, 0x18, 0x00, 0x01, 0x10, 0x00, 0xFA, 0xDC, 0xBB, 0x9A,
         0x08, 0x81, 0xA8, 0xAB, 0x89, 0x20, 0x30, 0x72, 0x55, 0x44, 0x33, 0x12, 0x98, 0x99, 0x99, 0xCB,
         0xCD, 0xAC, 0xAB, 0x99, 0x9A, 0x9A, 0x20, 0x56, 0x25, 0x14, 0x02, 0x01, 0x08, 0x99, 0xCB, 0xBB,
         0x18, 0x44, 0x23, 0x91, 0xEB, 0xBC, 0xBB, 0xAC, 0x9A, 0x31, 0x46, 0x24, 0x22, 0x08, 0x8A, 0x88,
         0x01, 0x13, 0x33, 0x24, 0x81, 0xCF, 0xBF, 0xAC, 0x9A, 0x00, 0x22, 0x43, 0x33, 0x22, 0x01, 0xC9,
         0xBD, 0x9A, 0x10, 0x34, 0x34, 0x22, 0x10, 0x98, 0xFB, 0xCC, 0xBB, 0x89, 0x28, 0x22, 0x12, 0x18,
         0x00, 0x98, 0xCA, 0x18, 0x66, 0x36, 0x33, 0x12, 0xB8, 0xCC, 0xBC, 0xAC, 0x8A, 0x18, 0x43, 0x24,
         0x03, 0xA8, 0xCB, 0x9C, 0x0A, 0x28, 0x42, 0x44, 0x43, 0x12, 0x91, 0xA9, 0xAA, 0x99, 0x99, 0xAD,
         0xCB, 0xB9, 0xBC, 0xCC, 0xAC, 0x8B, 0x41, 0x34, 0x35, 0x33, 0x43, 0x12, 0x80, 0xCB, 0xAC, 0x8A,
         0x09, 0x80, 0xB8, 0xCA, 0xBA, 0xBC, 0xBD, 0xAB, 0x2A, 0x52, 0x43, 0x22, 0x23, 0x45, 0x35, 0x26,
         0x12, 0x81, 0xA8, 0xCC, 0xCC, 0xBB, 0xBB, 0x99, 0x11, 0x11, 0x88, 0x09, 0x48, 0x54, 0x54, 0x42,
         0x33, 0x23, 0x91, 0xDB, 0xCC, 0xAA, 0x9A, 0x00, 0x00, 0x01, 0x80, 0xBA, 0xAF, 0x9D, 0x08, 0x42,
         0x35, 0x25, 0x23, 0x12, 0x81, 0xAA, 0xBD, 0xBB, 0xBB, 0x99, 0x89, 0xA9, 0xDC, 0xCB, 0xBB, 0x9A,
         0x31, 0x57, 0x53, 0x23, 0x13, 0x88, 0xBA, 0xAD, 0xAB, 0x8A, 0x00, 0x33, 0x14, 0xC8, 0xDD, 0xBB,
         0x9C, 0x88, 0x31, 0x44, 0x53, 0x22, 0x12, 0x80, 0x88, 0x88, 0x11, 0x00, 0xA0, 0xCC, 0xBE, 0xCB,
         0xBB, 0xAB, 0x09, 0x31, 0x35, 0x26, 0x33, 0x33, 0x32, 0x12, 0xA8, 0xBC, 0xAE, 0x99, 0x00, 0x80,
         0xB8, 0xDA, 0xDB, 0xCC, 0xBB, 0x9A, 0x28, 0x62, 0x33, 0x32, 0x33, 0x16, 0x23, 0x11, 0x00, 0x8A,
         0xAD, 0xCC, 0xDB, 0x9A, 0x0A, 0x88, 0x99, 0x9A, 0xAB, 0x12, 0x57, 0x34, 0x25, 0x33, 0x12, 0x99,
         0xAD, 0xAD, 0x99, 0x10, 0x25, 0x13, 0x81, 0xBA, 0xBF, 0xAC, 0x9B, 0x89, 0x41, 0x34, 0x34, 0x11,
         0x81, 0x88, 0x88, 0xA8, 0x99, 0x09, 0x32, 0x11, 0xAE, 0xBE, 0xBC, 0xCC, 0xBB, 0xBA, 0x11, 0x56,
         0x33, 0x23, 0x00, 0x99, 0xBC, 0xAA, 0x29, 0x45, 0x36, 0x33, 0x81, 0xDB, 0xBD, 0xAD, 0x9A, 0x88,
         0x21, 0x32, 0x24, 0x11, 0x88, 0x88, 0x18, 0x62, 0x34, 0x24, 0x01, 0x88, 0xCA, 0xDB, 0xBB, 0xBC,
         0xAB, 0x98, 0x80, 0x80, 0x22, 0x53, 0x32, 0x21, 0x19, 0x51, 0x46, 0x34, 0x34, 0x12, 0x80, 0xCA,
         0xBE, 0xAD, 0xBB, 0x99, 0x08, 0x02, 0x01, 0x11, 0x21, 0x43, 0x63, 0x53, 0x33, 0x24, 0x02, 0xA8,
         0xCB, 0xBA, 0xCB, 0xCB, 0xCB, 0xBB, 0xAB, 0x9B, 0x09, 0x31, 0x37, 0x34, 0x23, 0x22, 0x20, 0x32,
         0x36, 0x34, 0x13, 0xA8, 0xCE, 0xCC, 0xCB, 0xAB, 0x99, 0x09, 0x12, 0x23, 0x14, 0x22, 0x32, 0x53,
         0x53, 0x22, 0x23, 0x12, 0xA0, 0xDA, 0xDB, 0xBB, 0xBC, 0xCB, 0xBA, 0x9A, 0x00, 0x32, 0x53, 0x32,
         0x22, 0x32, 0x23, 0x35, 0x45, 0x24, 0x14, 0x81, 0xCA, 0xBD, 0xBC, 0x9C, 0x8A, 0x08, 0x10, 0x12,
         0x01, 0x00, 0x88, 0x31, 0x65, 0x33, 0x24, 0x12, 0x90, 0xB9, 0xCB, 0xAC, 0xBB, 0xAA, 0x9A, 0xBA,
         0xCB, 0x9C, 0x88, 0x22, 0x42, 0x32, 0x63, 0x43, 0x24, 0x23, 0x23, 0x11, 0x90, 0xDC, 0xBD, 0xBB,
         0x9B, 0x89, 0x88, 0x81, 0x80, 0xA0, 0x88, 0x20, 0x74, 0x34, 0x44, 0x01, 0x80, 0x98, 0x9A, 0x8B,
         0x99, 0x89, 0xA0, 0xD0, 0xD9, 0xB9, 0xBB, 0x09, 0x00, 0x32, 0x32, 0x31, 0x32, 0x62, 0x11, 0x03,
         0x02, 0xA9, 0xC1, 0xA9, 0xBB, 0xB1, 0x09, 0xA0, 0x11, 0xB0, 0x10, 0x3A, 0x3B, 0x00, 0x10, 0x39,
         0x2A, 0x09, 0x91, 0xB1
     };

#define  UFOEXPLODE_DVI 1965

__align(2)
     const U8 UfoExplode_dvi[1965] = 
     {
         0x77, 0xD7, 0x77, 0x77, 0x0E, 0x08, 0xB7, 0xB7, 0x08, 0x17, 0xAB, 0x80, 0x10, 0x99, 0x10, 0x90,
         0x03, 0xC0, 0x81, 0x80, 0x88, 0x22, 0x0F, 0x29, 0x09, 0xB2, 0x49, 0xBA, 0x87, 0x10, 0x31, 0xF0,
         0x0F, 0x28, 0x43, 0xA8, 0xBA, 0x0D, 0x40, 0x81, 0x48, 0x80, 0xBC, 0x09, 0x01, 0x88, 0x04, 0x83,
         0xB0, 0x1B, 0x60, 0x22, 0xF9, 0xB9, 0x39, 0x00, 0x1D, 0x01, 0x83, 0x19, 0x92, 0xDE, 0x28, 0x39,
         0x11, 0x25, 0xA3, 0xD0, 0xEB, 0x09, 0x18, 0x31, 0x24, 0x20, 0x1B, 0xB9, 0xDB, 0x2B, 0x5B, 0x12,
         0x99, 0xBB, 0x4C, 0x11, 0x90, 0x92, 0x52, 0x9D, 0x82, 0x92, 0x87, 0x92, 0x81, 0xAB, 0xCE, 0x18,
         0x35, 0x80, 0x89, 0xB9, 0x99, 0x2B, 0x66, 0x01, 0x99, 0xAC, 0x38, 0x00, 0x35, 0x22, 0xF8, 0x9D,
         0x89, 0x28, 0x14, 0x00, 0x90, 0x81, 0xAB, 0xBB, 0xC8, 0x48, 0x37, 0xA9, 0x0A, 0x46, 0x01, 0xB0,
         0xA8, 0x38, 0xBA, 0x9F, 0x29, 0x81, 0x22, 0x96, 0xA9, 0xCB, 0x29, 0x01, 0x24, 0x05, 0x10, 0xDC,
         0x89, 0x38, 0x14, 0x88, 0xB8, 0xB8, 0x29, 0x47, 0xA0, 0x10, 0x02, 0xC2, 0xED, 0x0A, 0x32, 0x82,
         0x98, 0xAA, 0x1A, 0x01, 0x48, 0x10, 0x37, 0x90, 0x9D, 0xCB, 0x21, 0x32, 0x12, 0xFB, 0x0B, 0x50,
         0x84, 0x19, 0x98, 0xBB, 0x39, 0x10, 0x88, 0x38, 0x27, 0x8A, 0x29, 0x2F, 0x03, 0xD9, 0x89, 0xA9,
         0x0A, 0x28, 0x77, 0x80, 0x98, 0x9A, 0xAB, 0x09, 0x73, 0x15, 0x88, 0x88, 0xD9, 0x09, 0x20, 0x23,
         0xCA, 0x8A, 0x80, 0x00, 0x41, 0x21, 0x03, 0xE1, 0xCD, 0x18, 0x21, 0x18, 0x34, 0xDC, 0x9B, 0x30,
         0x02, 0x88, 0x80, 0x17, 0x81, 0x08, 0x8A, 0xE8, 0x19, 0x42, 0x81, 0xBC, 0x41, 0x91, 0xAA, 0x17,
         0xB9, 0x0C, 0x88, 0x03, 0x11, 0x15, 0xC9, 0x0D, 0x89, 0x91, 0xAB, 0x78, 0x16, 0x08, 0x91, 0xA0,
         0x9A, 0x0A, 0xA9, 0x62, 0x13, 0xA8, 0x9A, 0xCA, 0xAA, 0x55, 0x13, 0xCA, 0xBB, 0x48, 0x13, 0x81,
         0x84, 0xE9, 0x30, 0x08, 0x29, 0xCA, 0x38, 0x12, 0xDC, 0x0B, 0x80, 0x19, 0x27, 0x08, 0xD0, 0x81,
         0x12, 0x30, 0xA2, 0xD2, 0xAD, 0x98, 0x3A, 0x47, 0xA0, 0xAC, 0x09, 0x13, 0x8A, 0x42, 0x92, 0xFB,
         0x29, 0x52, 0x98, 0x98, 0xA1, 0x28, 0x99, 0x38, 0x71, 0x80, 0xAE, 0x02, 0x51, 0x88, 0x98, 0xAD,
         0x39, 0x15, 0x9D, 0x42, 0x90, 0x8A, 0x98, 0x22, 0xA0, 0x0C, 0x98, 0x8A, 0x41, 0x37, 0x08, 0xA8,
         0xA9, 0xE1, 0x9A, 0x78, 0x12, 0x18, 0x90, 0xCC, 0x89, 0x22, 0x22, 0xB8, 0x18, 0x34, 0xDA, 0xB0,
         0x52, 0x81, 0xDA, 0xBA, 0x59, 0x06, 0x18, 0x00, 0xDB, 0x0A, 0x88, 0x27, 0x98, 0x5B, 0x80, 0x99,
         0x80, 0x8C, 0x91, 0x42, 0xB8, 0x49, 0x28, 0x11, 0x02, 0xAA, 0xF0, 0xAB, 0x49, 0x27, 0x88, 0x08,
         0xB8, 0xC9, 0x88, 0x42, 0x90, 0x98, 0xC9, 0x49, 0x36, 0x00, 0xC9, 0x8D, 0x00, 0x90, 0x59, 0x82,
         0x21, 0xB8, 0xB9, 0xAD, 0x70, 0x03, 0x99, 0x9B, 0x89, 0x42, 0x15, 0xA8, 0x8D, 0x89, 0x12, 0x9B,
         0x47, 0x00, 0xA8, 0x8E, 0x88, 0x42, 0x08, 0x0A, 0x01, 0x89, 0xD9, 0x19, 0x22, 0x90, 0xDB, 0x09,
         0x30, 0x71, 0x05, 0xB0, 0x9C, 0x19, 0x05, 0x80, 0x1C, 0x12, 0x12, 0x98, 0xFB, 0x0D, 0x21, 0x20,
         0x88, 0xB0, 0xCB, 0x00, 0x52, 0x02, 0x09, 0xC0, 0x9D, 0x40, 0x30, 0x11, 0xC9, 0x92, 0x8B, 0x10,
         0x01, 0xAE, 0x08, 0x41, 0xB0, 0x2C, 0x28, 0xA0, 0x09, 0x1D, 0x14, 0x52, 0x41, 0xAB, 0x38, 0x18,
         0x83, 0xCF, 0xB8, 0xAA, 0x28, 0x35, 0x51, 0xA8, 0x90, 0x32, 0x0F, 0x81, 0x3C, 0x16, 0xC8, 0x0C,
         0x09, 0x10, 0x11, 0x81, 0xA0, 0xC9, 0x91, 0x38, 0x16, 0xA9, 0x0F, 0x08, 0x29, 0x33, 0xA9, 0x28,
         0x23, 0x12, 0xB9, 0x4F, 0xE9, 0x01, 0x91, 0x0A, 0xA9, 0xD4, 0x28, 0x80, 0x11, 0x8F, 0x32, 0x93,
         0x10, 0xDA, 0x19, 0x23, 0xF8, 0x39, 0xD8, 0x02, 0x99, 0x43, 0x9A, 0xA3, 0xB2, 0x2B, 0x7C, 0xE0,
         0x08, 0x11, 0x32, 0xB2, 0xAE, 0x22, 0x8A, 0x40, 0xA0, 0x91, 0x9F, 0x18, 0x87, 0x90, 0x98, 0x1B,
         0x98, 0x51, 0x92, 0x4A, 0x94, 0x90, 0xA8, 0x98, 0x39, 0x11, 0x71, 0xA8, 0xAA, 0xEB, 0x23, 0x10,
         0xF2, 0xAB, 0x21, 0x89, 0x42, 0x95, 0x22, 0x8A, 0x9C, 0xC1, 0x60, 0x01, 0x90, 0x0C, 0x88, 0xA3,
         0x93, 0xCB, 0x11, 0xB4, 0x3C, 0xB2, 0x9E, 0x33, 0xA1, 0x2A, 0xA0, 0x10, 0x73, 0x02, 0x81, 0xBF,
         0x00, 0x25, 0xA8, 0xB8, 0x0D, 0x20, 0x8D, 0x23, 0x23, 0xBA, 0x9D, 0xC0, 0x31, 0x02, 0x25, 0x8A,
         0xC9, 0xB9, 0xB0, 0x73, 0x10, 0x11, 0xA8, 0x0C, 0x1A, 0x84, 0x10, 0xA0, 0xFD, 0x88, 0x21, 0x90,
         0x90, 0x17, 0x29, 0x90, 0xAA, 0x59, 0x12, 0xB0, 0xAE, 0x00, 0x07, 0x3A, 0xA8, 0xAC, 0x88, 0x12,
         0x52, 0xA0, 0x99, 0xA2, 0x29, 0x80, 0x9C, 0x75, 0x10, 0xA0, 0xBC, 0x4B, 0x02, 0x90, 0x72, 0x90,
         0xC9, 0xAB, 0x30, 0x17, 0x00, 0xB9, 0x9C, 0x10, 0x31, 0x21, 0xD0, 0x10, 0x10, 0xDA, 0x90, 0x3C,
         0x16, 0x91, 0x01, 0xE0, 0x9A, 0x02, 0x02, 0x39, 0x08, 0xBC, 0x8B, 0x8B, 0x43, 0x87, 0xD1, 0x1A,
         0x24, 0x98, 0x12, 0xAC, 0x90, 0x1C, 0x34, 0x8C, 0x81, 0xA2, 0x9C, 0x28, 0x8A, 0x07, 0x11, 0x82,
         0x9C, 0x10, 0x72, 0x88, 0xD1, 0xB8, 0x99, 0x10, 0x61, 0xA3, 0x9A, 0x13, 0x00, 0xF0, 0x0F, 0x82,
         0x12, 0x9A, 0xAA, 0x5A, 0x23, 0x90, 0x80, 0xAC, 0x89, 0x4B, 0x45, 0x99, 0x18, 0x03, 0xCB, 0x28,
         0x03, 0x80, 0xF8, 0x2C, 0x88, 0x02, 0xBC, 0x31, 0x13, 0x9F, 0x12, 0x31, 0xA0, 0x0D, 0xB4, 0x8C,
         0x16, 0x8A, 0x1A, 0x28, 0xBB, 0x36, 0xB2, 0x98, 0xBB, 0x29, 0x2E, 0x71, 0x18, 0x00, 0x00, 0xB0,
         0x9D, 0x20, 0xC9, 0x2A, 0x40, 0x00, 0x83, 0x6A, 0xA9, 0x1E, 0x14, 0xA0, 0x00, 0x00, 0xD9, 0x89,
         0x04, 0x28, 0xD9, 0x8C, 0x08, 0x28, 0x06, 0x10, 0x88, 0xC9, 0x80, 0x85, 0x19, 0x02, 0xAB, 0x12,
         0xF3, 0xA1, 0x03, 0xA8, 0x60, 0x8B, 0xDB, 0x8A, 0x62, 0x03, 0x88, 0xBA, 0x98, 0x78, 0x01, 0x0A,
         0x10, 0x81, 0xF9, 0x2A, 0x08, 0x29, 0x31, 0x87, 0x89, 0x99, 0x07, 0xC8, 0x2B, 0xA2, 0x1A, 0x09,
         0x41, 0x21, 0xF8, 0x29, 0x87, 0xAA, 0x80, 0x42, 0x80, 0xB0, 0x10, 0xF1, 0x1C, 0x12, 0xA8, 0x8A,
         0x1A, 0x81, 0x80, 0x57, 0x8A, 0x00, 0x9A, 0x42, 0x29, 0x58, 0x98, 0xDA, 0x08, 0x28, 0x24, 0xAB,
         0xCB, 0x31, 0x02, 0xE8, 0x99, 0x24, 0xE8, 0x18, 0x91, 0x30, 0x49, 0x91, 0xB9, 0x2D, 0x01, 0xBA,
         0x62, 0x91, 0x14, 0x9A, 0x20, 0xFD, 0x09, 0x12, 0x10, 0x88, 0x58, 0x90, 0x8A, 0xD1, 0x08, 0x34,
         0x98, 0x8A, 0x1A, 0x87, 0x1B, 0x15, 0xAA, 0xBC, 0x39, 0xD2, 0x59, 0x82, 0x08, 0x94, 0xC9, 0x09,
         0x29, 0x38, 0x15, 0x09, 0xB9, 0x50, 0x94, 0xC9, 0x30, 0x80, 0xBC, 0x0A, 0x71, 0x80, 0x99, 0xA1,
         0xB2, 0x28, 0x92, 0x8D, 0x42, 0x44, 0x91, 0xAB, 0x80, 0xAD, 0x1B, 0xA9, 0x77, 0x80, 0x88, 0x88,
         0xAA, 0x1A, 0x41, 0x29, 0x38, 0x88, 0x4A, 0x86, 0xCA, 0x18, 0x23, 0xAB, 0xA8, 0x32, 0xB8, 0x20,
         0xBF, 0xE1, 0x0B, 0x22, 0x95, 0x89, 0x31, 0xB3, 0xD0, 0x4A, 0x83, 0x28, 0x58, 0x99, 0x2A, 0xB1,
         0xBC, 0x73, 0x15, 0x89, 0xC8, 0x9D, 0x58, 0x91, 0x8B, 0x22, 0x87, 0xA9, 0x81, 0x9B, 0x88, 0x5A,
         0x16, 0x10, 0xB8, 0x9F, 0x00, 0x21, 0x00, 0x28, 0xB9, 0x9C, 0x90, 0x08, 0x62, 0x32, 0xB9, 0xDA,
         0x31, 0x06, 0xB9, 0x3A, 0x82, 0xA2, 0xF9, 0x2A, 0x62, 0xA9, 0x01, 0xA0, 0xB3, 0xF8, 0x80, 0x10,
         0x30, 0xB4, 0x8D, 0x24, 0xA0, 0x8C, 0x68, 0x91, 0x8A, 0x39, 0x81, 0xBA, 0x00, 0x48, 0x24, 0xAB,
         0xC9, 0x8F, 0x41, 0x84, 0xA9, 0x58, 0x00, 0xBA, 0xAA, 0x72, 0x91, 0x28, 0xA1, 0x18, 0xB9, 0xBC,
         0x20, 0x27, 0x08, 0xBA, 0x8C, 0x12, 0x82, 0x2A, 0x31, 0x34, 0xED, 0x9A, 0x30, 0x33, 0x01, 0x20,
         0xD9, 0xBD, 0x0A, 0x36, 0x09, 0xC8, 0x20, 0xE2, 0x3B, 0x03, 0xB9, 0x9B, 0x71, 0x05, 0x89, 0x99,
         0x89, 0x98, 0x43, 0x80, 0x08, 0x8B, 0x20, 0xBB, 0x34, 0x73, 0xC8, 0x2A, 0x80, 0x00, 0xAD, 0xA0,
         0x85, 0x10, 0x85, 0x8A, 0xC3, 0x8C, 0x24, 0xC8, 0xB9, 0x72, 0x93, 0xB9, 0xA9, 0x19, 0x01, 0x34,
         0x81, 0x8D, 0x73, 0x88, 0x9A, 0x80, 0xCB, 0x22, 0x48, 0x24, 0xB8, 0x8C, 0x19, 0x02, 0x9C, 0x0E,
         0x42, 0x12, 0xBA, 0x1B, 0x1A, 0x41, 0x91, 0xBA, 0x1D, 0x73, 0x01, 0x98, 0xCB, 0x8C, 0x41, 0x11,
         0x10, 0xB8, 0x20, 0xB9, 0x93, 0x9C, 0x54, 0x89, 0x2A, 0x93, 0x9F, 0xA9, 0x42, 0x35, 0xE1, 0x8A,
         0x01, 0x99, 0x02, 0x10, 0x88, 0xB5, 0x30, 0x80, 0xFF, 0x19, 0x42, 0x81, 0xBA, 0x28, 0x80, 0x0C,
         0x84, 0x10, 0x02, 0xF9, 0x8A, 0x62, 0x83, 0xC8, 0x9B, 0x11, 0x90, 0x48, 0x91, 0x5B, 0x03, 0xAA,
         0x9D, 0x10, 0x92, 0x92, 0x20, 0x92, 0x05, 0xDB, 0x08, 0x90, 0x32, 0xAF, 0x06, 0x11, 0xAA, 0xAF,
         0x11, 0x33, 0x82, 0xAA, 0x8F, 0x91, 0x30, 0x16, 0xA8, 0x9C, 0x08, 0x80, 0x42, 0x88, 0x80, 0x03,
         0xCA, 0x0C, 0x09, 0x32, 0x23, 0x86, 0xBC, 0x39, 0x9A, 0x80, 0x5A, 0x7A, 0xC2, 0x19, 0x92, 0xA9,
         0x09, 0x31, 0x72, 0xF0, 0x8A, 0x10, 0x00, 0x04, 0x00, 0x8A, 0x0B, 0x82, 0xDC, 0x7A, 0x13, 0x88,
         0x98, 0xAA, 0x19, 0xC9, 0x73, 0x02, 0x9A, 0xDB, 0x40, 0x00, 0x03, 0xDB, 0x10, 0x80, 0x19, 0xD3,
         0x09, 0x09, 0xA4, 0x99, 0x28, 0x32, 0xD2, 0x9C, 0x83, 0x59, 0x07, 0x89, 0xAB, 0x1A, 0x24, 0x20,
         0x23, 0x99, 0xFB, 0xAA, 0x88, 0x24, 0x0A, 0x38, 0xC1, 0x8C, 0xB8, 0x32, 0x57, 0x9B, 0x01, 0x88,
         0x18, 0x01, 0x8B, 0xA8, 0x9B, 0x37, 0x8F, 0x80, 0x1B, 0x37, 0x80, 0xAA, 0xC0, 0x0B, 0x53, 0x03,
         0xAA, 0x98, 0x43, 0xBA, 0x2A, 0xDC, 0x50, 0x04, 0xAB, 0x58, 0x98, 0x8A, 0x81, 0x61, 0x91, 0x0A,
         0x92, 0x8B, 0xB9, 0x38, 0x27, 0x20, 0xA8, 0xAA, 0xE8, 0x88, 0x26, 0xA9, 0x4A, 0x98, 0x90, 0x20,
         0xAA, 0x79, 0x01, 0xC8, 0x0A, 0x51, 0x01, 0xAA, 0x30, 0x02, 0xAC, 0xA9, 0x05, 0x04, 0xAC, 0x03,
         0xC0, 0xA3, 0xAF, 0x42, 0x20, 0xA3, 0x9E, 0x99, 0x11, 0x19, 0x45, 0x9C, 0x82, 0x20, 0xA1, 0x9E,
         0x88, 0x30, 0x32, 0x92, 0xAF, 0x1B, 0x22, 0x12, 0xD0, 0x30, 0x1A, 0x15, 0x9F, 0x88, 0x44, 0xA8,
         0xAA, 0x98, 0x22, 0x14, 0x9A, 0x00, 0x3C, 0x03, 0xB9, 0x9B, 0x17, 0x2B, 0xD9, 0x4B, 0xA9, 0x22,
         0x02, 0x62, 0x9B, 0xA0, 0x18, 0x43, 0xDB, 0x99, 0x30, 0x94, 0x90, 0x81, 0xF2, 0x8E, 0x22, 0x10,
         0x81, 0x0B, 0xB2, 0xBC, 0x21, 0x14, 0x91, 0x51, 0x92, 0x8E, 0x09, 0x11, 0x91, 0x8C, 0x43, 0x99,
         0x3F, 0xD8, 0x1A, 0x01, 0x73, 0x80, 0x98, 0x9C, 0x80, 0x02, 0x31, 0x05, 0xBA, 0x9C, 0xA0, 0x30,
         0xD2, 0x60, 0x84, 0xC1, 0x9E, 0x10, 0x21, 0x01, 0x0B, 0x88, 0x08, 0xA0, 0x33, 0x0F, 0x20, 0x92,
         0x1B, 0xB2, 0x8F, 0x11, 0x33, 0x11, 0xB2, 0xBF, 0xAD, 0x41, 0x81, 0x12, 0x81, 0x99, 0xAE, 0x28,
         0x13, 0x91, 0x3D, 0xA4, 0x8B, 0x1A, 0x42, 0x0B, 0x00, 0x61, 0xB8, 0x9F, 0x08, 0x40, 0x12, 0x38,
         0xA1, 0xBF, 0x11, 0x08, 0x03, 0x03, 0xE1, 0x09, 0xA0, 0x8C, 0x8C, 0x12, 0x53, 0x25, 0xDB, 0x80,
         0x98, 0x81, 0x8A, 0x61, 0x83, 0xAE, 0x32, 0xA8, 0x98, 0x19, 0x01, 0xB8, 0x0A, 0x67, 0x88, 0x09,
         0x88, 0xAA, 0x09, 0x22, 0x14, 0xA9, 0x13, 0xCD, 0x8C, 0x58, 0x84, 0x8A, 0x02, 0x81, 0xDB, 0x11,
         0x12, 0x91, 0x29, 0xB8, 0x5D, 0x80, 0xDA, 0x48, 0xA2, 0x9B, 0x54, 0xB1, 0xCB, 0x48, 0x23, 0xAA,
         0x94, 0x82, 0xAA, 0xAC, 0x88, 0x08, 0x17, 0xA2, 0x3A, 0xB4, 0x9C, 0xB3, 0xAB, 0x56, 0x10, 0x08,
         0x1C, 0x80, 0x9A, 0x31, 0xBA, 0x8F, 0x33, 0x11, 0x48, 0xB8, 0x8F, 0x12, 0x28, 0xE1, 0x1A, 0x01,
         0x0A, 0x94, 0xC8, 0x28, 0x11, 0xA0, 0x52, 0xE8, 0x39, 0x9B, 0x27, 0xAA, 0x98, 0x80, 0x13, 0x81,
         0x0A, 0x35, 0xBA, 0xBF, 0x20, 0x38, 0xC6, 0x3A, 0x83, 0x8B, 0xB2, 0x49, 0x06, 0x99, 0x9A, 0xAA,
         0x21, 0x02, 0x72, 0x02, 0xAD, 0x90, 0x1A, 0x11, 0x10, 0x02, 0x62, 0xD8, 0x99, 0x48, 0xCA, 0x52,
         0x98, 0x09, 0x91, 0xA9, 0x80, 0x01, 0x22, 0xEA, 0x62, 0xB0, 0x1C, 0x91, 0x41, 0x01, 0xC1, 0x19,
         0x0A, 0xAE, 0x02, 0x91, 0x42, 0xA1, 0x93, 0x9F, 0x94, 0x09, 0x33, 0x38, 0xD3, 0x9B, 0x8C, 0xC2,
         0x6A, 0x82, 0x88, 0x19, 0x89, 0x0B, 0xB7, 0x2B, 0xB4, 0x31, 0x09, 0xE9, 0x59, 0x08, 0x80, 0x04,
         0xB0, 0x20, 0xBC, 0x12, 0x91, 0xC9, 0x62, 0xA2, 0x9C, 0x31, 0x09, 0x16, 0xEA, 0x89, 0x8A, 0x43,
         0x11, 0x09, 0x31, 0xE8, 0x8A, 0x08, 0x24, 0x0A, 0xC1, 0x00, 0x09, 0x2A, 0xF2, 0x1C, 0x03, 0x32,
         0x80, 0x9E, 0xC8, 0x29, 0x12, 0x24, 0x08, 0x00, 0xC3, 0x9D, 0x88, 0xB1, 0x51, 0x86, 0xAA, 0xA9,
         0x00, 0x12, 0x8B, 0x16, 0xB2, 0x1D, 0xA4, 0x08, 0x11, 0x98, 0x21, 0x9C, 0x2B, 0x00, 0x03, 0x60,
         0xFB, 0x3B, 0x00, 0x84, 0x8C, 0x28, 0x32, 0x91, 0xBA, 0xBB, 0x8A, 0x54, 0x02, 0x78, 0x91, 0x8A,
         0xBB, 0x19, 0x47, 0xA9, 0x91, 0x8A, 0x04, 0xDA, 0x1B, 0x14, 0x18, 0xA0, 0x5B, 0x80, 0x98, 0x89,
         0x21, 0xA5, 0x51, 0xE2, 0x38, 0xCA, 0x49, 0x88, 0x88, 0x20, 0xB8, 0x28, 0x85, 0x80, 0x9A, 0x18,
         0x92, 0x1C, 0xCE, 0x52, 0x81, 0xA2, 0xAB, 0x61, 0x88, 0x10, 0xBC, 0xA8, 0x72, 0x90, 0xA1, 0x30,
         0xB0, 0x00, 0x0A, 0x24, 0xC8, 0x9B, 0x86, 0xA9, 0x12, 0xA8, 0x36, 0x98, 0xEB, 0x10, 0x18, 0x82,
         0x8D, 0x93, 0x22, 0x80, 0xBA, 0xAA, 0x72, 0xB3, 0x0D, 0x81, 0x31, 0xF2, 0x8A, 0x20, 0x08, 0x99,
         0x42, 0x53, 0xF9, 0x19, 0xA0, 0x11, 0x08, 0x20, 0x10, 0xA9, 0x2B, 0x90, 0x11, 0x9D, 0x87, 0x8A,
         0xA0, 0x00, 0xA9, 0x72, 0x84, 0x9A, 0x82, 0x0D, 0x92, 0x1B, 0x30, 0x89, 0x15, 0x9D, 0xB8, 0x22,
         0x22, 0xA8, 0x7C, 0x9A, 0x59, 0x88, 0x88, 0x11, 0x01, 0xC2, 0x0D, 0x12, 0x81, 0x19, 0x21, 0xA9,
         0xAF, 0x88, 0x01, 0xC9, 0x39, 0x36, 0xCA, 0x92, 0x89, 0x91, 0x54, 0x90, 0xBA, 0x40, 0x91, 0x82,
         0xB8, 0x49, 0xB2, 0x9D, 0xA8, 0x3B, 0x37, 0xC9, 0x29, 0x91, 0x81, 0xC9, 0x28
     };

#define  UFOHIT_DVI  1646

__align(2)
     const U8 UfoHit_dvi[1646] = 
     {
         0x77, 0xD7, 0x77, 0x77, 0x0E, 0x08, 0x3F, 0xB7, 0x08, 0x17, 0x8C, 0x08, 0x08, 0x08, 0x08, 0x88,
         0x80, 0x80, 0x80, 0x80, 0x80, 0x08, 0x00, 0x00, 0x08, 0x11, 0x98, 0xA9, 0x8A, 0x32, 0x13, 0x28,
         0x14, 0xFB, 0x9E, 0xA9, 0x89, 0x38, 0x46, 0x12, 0x21, 0x82, 0xA9, 0xBB, 0xBD, 0x9B, 0xBB, 0x0A,
         0x02, 0x00, 0x8A, 0x57, 0x32, 0x27, 0x11, 0x10, 0xC9, 0xBB, 0xCD, 0xBB, 0x9B, 0x00, 0x74, 0x14,
         0x01, 0x22, 0xA2, 0xBA, 0xA9, 0xCF, 0x99, 0x10, 0x01, 0x41, 0x25, 0x90, 0x00, 0xC8, 0xAC, 0x08,
         0x81, 0x10, 0x41, 0x26, 0xA8, 0x8A, 0xB8, 0xBB, 0xCD, 0xCB, 0x9B, 0x31, 0x55, 0x45, 0x22, 0x22,
         0x80, 0xCC, 0xBB, 0xCB, 0xBB, 0x9B, 0x08, 0x43, 0x34, 0x63, 0x34, 0x33, 0x82, 0xDB, 0xCB, 0xDB,
         0xAA, 0x00, 0x11, 0x21, 0x44, 0x13, 0x90, 0xBB, 0xAD, 0x89, 0x11, 0x22, 0x44, 0x23, 0x01, 0xA9,
         0xDB, 0xAB, 0x9A, 0x98, 0xCE, 0xBC, 0x9A, 0x30, 0x67, 0x24, 0x13, 0x90, 0xC9, 0xCC, 0xAB, 0x9A,
         0x18, 0x41, 0x43, 0x22, 0x33, 0x32, 0x23, 0xB0, 0xDE, 0xBC, 0xAC, 0x9A, 0x19, 0x63, 0x34, 0x43,
         0x22, 0xA8, 0xCD, 0xBC, 0xAB, 0x89, 0x21, 0x35, 0x33, 0x23, 0x01, 0xB8, 0xDC, 0xBB, 0xAA, 0x18,
         0x43, 0x44, 0x22, 0x22, 0x22, 0x02, 0xDA, 0xAC, 0xBB, 0xBD, 0xAA, 0xA9, 0x99, 0x0A, 0x73, 0x43,
         0x24, 0x23, 0x11, 0xB9, 0xCD, 0xBC, 0xAA, 0x18, 0x65, 0x43, 0x11, 0x80, 0xB9, 0xDC, 0xBC, 0xAB,
         0x08, 0x48, 0x44, 0x43, 0x23, 0x01, 0x80, 0xA0, 0xCE, 0xBC, 0xBA, 0x80, 0x08, 0x60, 0x34, 0x33,
         0x02, 0x08, 0xC0, 0xDC, 0xBA, 0xAB, 0x08, 0x31, 0x34, 0x34, 0x23, 0x12, 0x98, 0xBA, 0xCE, 0xBC,
         0x9B, 0x08, 0x31, 0x44, 0x43, 0x12, 0x00, 0x98, 0xAB, 0xBC, 0xBB, 0x09, 0x11, 0x90, 0x10, 0x42,
         0x43, 0x33, 0x36, 0x14, 0xA0, 0xBC, 0xBC, 0xBA, 0xAA, 0x09, 0x54, 0x33, 0x90, 0xEC, 0xCB, 0x8A,
         0x30, 0x44, 0x33, 0x33, 0x81, 0xCA, 0xBB, 0x9B, 0x09, 0x62, 0x24, 0x80, 0x9A, 0xBA, 0xCD, 0xAB,
         0x19, 0x22, 0x23, 0x33, 0x12, 0xDA, 0xBF, 0x8A, 0x42, 0x53, 0x53, 0x33, 0x02, 0xA8, 0xCD, 0xCC,
         0xBA, 0x9B, 0x09, 0x41, 0x34, 0x35, 0x43, 0x13, 0x91, 0xDA, 0xCC, 0xAB, 0xBB, 0x9B, 0x18, 0x53,
         0x35, 0x35, 0x23, 0x12, 0xA9, 0xCD, 0xCB, 0xAB, 0x9B, 0x18, 0x53, 0x34, 0x34, 0x12, 0x80, 0xCA,
         0xBC, 0xAD, 0xAA, 0x09, 0x42, 0x44, 0x33, 0x13, 0x81, 0xCA, 0xBD, 0xAC, 0x9B, 0x08, 0x32, 0x44,
         0x33, 0x23, 0x81, 0xBA, 0xEC, 0xDB, 0xAB, 0x99, 0x21, 0x63, 0x34, 0x33, 0x12, 0x90, 0xCB, 0xCC,
         0xBA, 0xBB, 0x9A, 0x20, 0x63, 0x43, 0x23, 0x23, 0x02, 0xA0, 0xCB, 0xCC, 0xBB, 0xBB, 0xAA, 0x9B,
         0x10, 0x73, 0x34, 0x44, 0x32, 0x12, 0x80, 0xDB, 0xBC, 0xCB, 0xAA, 0x99, 0x28, 0x43, 0x35, 0x23,
         0x11, 0x80, 0xA8, 0x98, 0x08, 0x98, 0xFA, 0xDC, 0xAB, 0xAB, 0x09, 0x42, 0x36, 0x35, 0x22, 0x81,
         0xA8, 0xCB, 0xAA, 0xA9, 0xAA, 0x99, 0x88, 0x00, 0xB9, 0xBC, 0xCB, 0x09, 0x74, 0x44, 0x44, 0x33,
         0x22, 0xA8, 0xDC, 0xBC, 0xBC, 0xBB, 0x9A, 0x30, 0x45, 0x34, 0x24, 0x22, 0x80, 0xA9, 0xCC, 0xBB,
         0xAA, 0x09, 0x21, 0x34, 0x24, 0x11, 0x98, 0xCB, 0xCB, 0x9A, 0x09, 0x32, 0x45, 0x43, 0x12, 0x90,
         0xDB, 0xBC, 0xBC, 0x9A, 0x10, 0x44, 0x34, 0x32, 0x11, 0x90, 0xCB, 0xCC, 0xCB, 0xAA, 0x89, 0x41,
         0x63, 0x33, 0x24, 0x12, 0x90, 0xCA, 0xBC, 0xBC, 0xBB, 0xAB, 0x19, 0x41, 0x54, 0x33, 0x24, 0x12,
         0x80, 0xAA, 0xBC, 0xDB, 0xBA, 0x9A, 0x89, 0x00, 0x30, 0x53, 0x53, 0x53, 0x33, 0x22, 0x81, 0xBA,
         0xCE, 0xCB, 0xAC, 0x9B, 0x89, 0x21, 0x53, 0x23, 0x33, 0x42, 0x32, 0x33, 0x22, 0xB8, 0xDF, 0xDB,
         0xBB, 0xBB, 0x9A, 0x31, 0x47, 0x43, 0x32, 0x01, 0xA9, 0xBC, 0xBD, 0xBA, 0x09, 0x31, 0x45, 0x33,
         0x02, 0x98, 0xBC, 0xCC, 0xAB, 0x88, 0x41, 0x53, 0x23, 0x12, 0x80, 0xCA, 0xCC, 0xAB, 0x8A, 0x20,
         0x34, 0x44, 0x23, 0x81, 0xB9, 0xCC, 0xBB, 0xCB, 0x89, 0x32, 0x35, 0x25, 0x22, 0x80, 0xBA, 0xBD,
         0xAA, 0x08, 0x52, 0x43, 0x23, 0x81, 0xEB, 0xDC, 0xBB, 0x9C, 0x89, 0x32, 0x45, 0x24, 0x33, 0x12,
         0x98, 0xCB, 0xCC, 0xBB, 0xAB, 0x09, 0x30, 0x45, 0x33, 0x23, 0x01, 0xA8, 0xBC, 0xBC, 0xAB, 0x8A,
         0x20, 0x53, 0x43, 0x13, 0x11, 0x98, 0xDB, 0xBD, 0xAA, 0x99, 0x10, 0x42, 0x35, 0x34, 0x23, 0xA8,
         0xCD, 0xBD, 0xAC, 0x8A, 0x30, 0x45, 0x34, 0x24, 0x02, 0xA0, 0xDB, 0xCC, 0xAB, 0x9B, 0x09, 0x31,
         0x44, 0x44, 0x32, 0x12, 0x91, 0xC9, 0xCB, 0xBC, 0xBB, 0x9B, 0x19, 0x53, 0x35, 0x25, 0x13, 0x80,
         0xBA, 0xCD, 0xBB, 0xAA, 0x08, 0x53, 0x44, 0x23, 0x12, 0x98, 0xCB, 0xBD, 0xBB, 0x9B, 0x08, 0x53,
         0x34, 0x43, 0x22, 0x80, 0xA9, 0xCA, 0xAA, 0xAA, 0x09, 0x20, 0x02, 0x81, 0x98, 0xBB, 0xCD, 0xAC,
         0x19, 0x41, 0x45, 0x34, 0x23, 0x82, 0xA8, 0xCC, 0xAA, 0xA9, 0x08, 0x11, 0x02, 0xD9, 0xDD, 0xBC,
         0xAB, 0x89, 0x53, 0x45, 0x43, 0x32, 0x21, 0x98, 0xDA, 0xBC, 0xBB, 0xAB, 0x09, 0x42, 0x53, 0x33,
         0x03, 0xA0, 0xCC, 0xCB, 0xAA, 0x09, 0x42, 0x44, 0x34, 0x22, 0x01, 0xB9, 0xCD, 0xBC, 0xBB, 0xAA,
         0x10, 0x42, 0x35, 0x34, 0x24, 0x12, 0x98, 0xEB, 0xCC, 0xBA, 0xAB, 0x09, 0x42, 0x45, 0x24, 0x23,
         0x02, 0xA8, 0xDC, 0xCB, 0xAB, 0x9A, 0x10, 0x42, 0x35, 0x33, 0x22, 0x80, 0xCA, 0xBC, 0xBC, 0xBA,
         0x8A, 0x20, 0x63, 0x43, 0x33, 0x33, 0x80, 0xCA, 0xBD, 0xAC, 0xAB, 0x89, 0x20, 0x44, 0x53, 0x22,
         0x02, 0xA8, 0xBC, 0xBD, 0xAC, 0x8A, 0x28, 0x52, 0x43, 0x43, 0x11, 0x81, 0xA9, 0xCB, 0xBB, 0xBB,
         0x99, 0x00, 0x33, 0x44, 0x22, 0x81, 0x98, 0xBB, 0xCB, 0x89, 0x52, 0x44, 0x33, 0x13, 0x91, 0xCC,
         0xCC, 0xBC, 0x9C, 0x89, 0x21, 0x33, 0x33, 0x22, 0x43, 0x23, 0x23, 0x23, 0x00, 0xDB, 0xEF, 0xBB,
         0xBC, 0x89, 0x20, 0x54, 0x34, 0x24, 0x12, 0x98, 0xDA, 0xBC, 0xBC, 0xAB, 0x89, 0x52, 0x53, 0x33,
         0x23, 0x12, 0x90, 0xCC, 0xBC, 0xAC, 0xAA, 0x08, 0x21, 0x53, 0x34, 0x33, 0x12, 0x90, 0xCC, 0xCD,
         0xBB, 0xAB, 0x89, 0x32, 0x47, 0x43, 0x33, 0x12, 0xA8, 0xDC, 0xDB, 0xBA, 0xA9, 0x08, 0x42, 0x44,
         0x23, 0x23, 0x00, 0xB9, 0xDB, 0xCB, 0xAB, 0x89, 0x10, 0x33, 0x24, 0x13, 0x82, 0xB8, 0xDB, 0xAA,
         0x89, 0x31, 0x34, 0x35, 0x23, 0x01, 0xB9, 0xBC, 0xBC, 0xBB, 0xBA, 0xBB, 0xAC, 0xBA, 0xCA, 0x0B,
         0x74, 0x45, 0x53, 0x22, 0x12, 0x81, 0xB9, 0xCE, 0xCB, 0xAB, 0x89, 0x28, 0x42, 0x34, 0x34, 0x13,
         0x90, 0xCB, 0xBD, 0xCB, 0x9A, 0x18, 0x43, 0x44, 0x24, 0x12, 0x01, 0xB9, 0xBC, 0xCD, 0xBA, 0xAA,
         0x08, 0x31, 0x55, 0x43, 0x32, 0x02, 0xA8, 0xDC, 0xDB, 0xBA, 0xAA, 0x28, 0x53, 0x44, 0x43, 0x12,
         0x81, 0xB9, 0xCD, 0xCB, 0xAA, 0x89, 0x20, 0x44, 0x43, 0x33, 0x12, 0x90, 0xCC, 0xDB, 0xAB, 0x9B,
         0x19, 0x41, 0x53, 0x33, 0x33, 0x12, 0xB9, 0xCD, 0xCB, 0xAB, 0x99, 0x18, 0x53, 0x34, 0x33, 0x23,
         0x98, 0xFB, 0xCB, 0xAB, 0xAB, 0x19, 0x52, 0x34, 0x34, 0x23, 0x81, 0xB9, 0xBD, 0xCB, 0xAA, 0x88,
         0x21, 0x34, 0x34, 0x11, 0xA8, 0xEB, 0xCB, 0xAA, 0x99, 0x31, 0x55, 0x43, 0x22, 0x02, 0xA8, 0xCB,
         0xBD, 0xAC, 0x9A, 0x08, 0x21, 0x32, 0x43, 0x33, 0x23, 0x23, 0x12, 0x90, 0xFB, 0xEB, 0xBB, 0xAC,
         0x89, 0x31, 0x35, 0x44, 0x32, 0x81, 0xB9, 0xDC, 0xBB, 0xBB, 0x9A, 0x31, 0x46, 0x34, 0x23, 0x02,
         0xA9, 0xCC, 0xDB, 0xAB, 0x9A, 0x10, 0x53, 0x34, 0x23, 0x13, 0x81, 0xCB, 0xCC, 0xAB, 0xBB, 0xAB,
         0x08, 0x53, 0x34, 0x34, 0x24, 0x33, 0x01, 0xB9, 0xBF, 0xBD, 0xBB, 0xAA, 0x08, 0x53, 0x45, 0x24,
         0x22, 0x80, 0xA9, 0xBC, 0xAD, 0xAB, 0x8A, 0x10, 0x53, 0x33, 0x33, 0x03, 0xA0, 0xDB, 0xBB, 0xBB,
         0x9A, 0x28, 0x62, 0x43, 0x33, 0x13, 0x90, 0xDA, 0xCC, 0xBC, 0xCB, 0x8A, 0x10, 0x43, 0x53, 0x53,
         0x32, 0x12, 0x80, 0xBB, 0xBD, 0xCC, 0xAB, 0x9A, 0x08, 0x42, 0x34, 0x34, 0x22, 0x01, 0xA9, 0xCB,
         0xBB, 0xCB, 0xAB, 0x9A, 0x20, 0x45, 0x32, 0x34, 0x22, 0x12, 0x80, 0xBB, 0xCD, 0xBC, 0xBC, 0xBC,
         0x89, 0x53, 0x35, 0x34, 0x13, 0x90, 0xDB, 0xDB, 0xBA, 0x9A, 0x89, 0x42, 0x53, 0x34, 0x13, 0x01,
         0xC9, 0xDB, 0xCB, 0xBB, 0x99, 0x20, 0x55, 0x34, 0x33, 0x22, 0x90, 0xDC, 0xCC, 0xBB, 0x9A, 0x20,
         0x63, 0x43, 0x22, 0x81, 0xA8, 0xBC, 0xBC, 0x9B, 0x09, 0x31, 0x45, 0x43, 0x23, 0x00, 0xA9, 0xDB,
         0xBC, 0xBC, 0x9A, 0x09, 0x31, 0x44, 0x34, 0x33, 0x23, 0x91, 0xDB, 0xCC, 0xAA, 0x9A, 0x88, 0x32,
         0x45, 0x33, 0x12, 0xC9, 0xBD, 0xBD, 0x9A, 0x89, 0x32, 0x45, 0x34, 0x33, 0x11, 0xA8, 0xDC, 0xBB,
         0xAC, 0x8A, 0x10, 0x22, 0x33, 0x34, 0x22, 0x90, 0xA9, 0xA9, 0xB9, 0xCC, 0xCC, 0xAA, 0x18, 0x53,
         0x46, 0x43, 0x12, 0x81, 0xCB, 0xCD, 0xCB, 0xAA, 0x09, 0x21, 0x55, 0x33, 0x33, 0x01, 0xC9, 0xEB,
         0xBB, 0xBA, 0x89, 0x21, 0x35, 0x35, 0x32, 0x02, 0xA8, 0xDC, 0xCB, 0xBB, 0x99, 0x20, 0x53, 0x34,
         0x24, 0x23, 0x81, 0xB9, 0xCD, 0xCB, 0xBB, 0xAB, 0x08, 0x41, 0x35, 0x34, 0x33, 0x22, 0x80, 0xCA,
         0xBD, 0xBC, 0xBB, 0x8A, 0x20, 0x45, 0x33, 0x24, 0x12, 0x80, 0xCA, 0xBC, 0xBC, 0xAA, 0x89, 0x10,
         0x42, 0x53, 0x23, 0x23, 0x01, 0xA9, 0xBB, 0xAD, 0x99, 0x08, 0x21, 0x34, 0x22, 0xA8, 0xCD, 0xCC,
         0xBC, 0xAC, 0x99, 0x00, 0x41, 0x55, 0x44, 0x33, 0x22, 0x91, 0xCA, 0xCD, 0xBC, 0xAB, 0x9A, 0x28,
         0x63, 0x34, 0x33, 0x22, 0x88, 0xDB, 0xCB, 0xAA, 0x99, 0x08, 0x22, 0x33, 0x33, 0x22, 0x01, 0x99,
         0xBA, 0xAC, 0x88, 0x89, 0x99, 0xDA, 0xCC, 0xCB, 0x09, 0x42, 0x63, 0x24, 0x23, 0x80, 0xCA, 0xBC,
         0xAA, 0x18, 0x53, 0x43, 0x23, 0x81, 0xEC, 0xCC, 0xBC, 0xAB, 0x89, 0x51, 0x45, 0x34, 0x34, 0x12,
         0x90, 0xEB, 0xDB, 0xAC, 0xAB, 0x89, 0x21, 0x34, 0x45, 0x32, 0x13, 0x01, 0xB9, 0xCC, 0xBC, 0xBB,
         0x9A, 0x08, 0x32, 0x35, 0x24, 0x12, 0x00, 0xA9, 0xBB, 0xCB, 0x8A, 0x20, 0x54, 0x43, 0x32, 0x02,
         0xC9, 0xDC, 0xCB, 0xAB, 0xAA, 0x10, 0x63, 0x53, 0x33, 0x22, 0x80, 0xDA, 0xBC, 0xBC, 0xAA, 0x18,
         0x43, 0x45, 0x33, 0x23, 0x81, 0xCA, 0xCD, 0xBB, 0xAC, 0x9A, 0x08, 0x32, 0x45, 0x43, 0x23, 0x12,
         0x91, 0xB9, 0xCC, 0xCB, 0xAB, 0x9A, 0x08, 0x22, 0x34, 0x34, 0x33, 0x01, 0xA8, 0xDB, 0xCB, 0xBA,
         0x09, 0x21, 0x35, 0x35, 0x13, 0x81, 0xCA, 0xBD, 0xAC, 0x9A, 0x09, 0x32, 0x34, 0x33, 0x13, 0x80,
         0xA9, 0xAB, 0x89, 0x00, 0x22, 0x81, 0xED, 0xDC, 0xCB, 0x9A, 0x10, 0x45, 0x44, 0x22, 0x02, 0xA8,
         0xDC, 0xBB, 0xAC, 0x09, 0x30, 0x45, 0x24, 0x23, 0x80, 0xBB, 0xCE, 0xBA, 0x99, 0x10, 0x44, 0x43,
         0x23, 0x81, 0xCA, 0xCC, 0xBB, 0xBB, 0x08, 0x52, 0x44, 0x33, 0x22, 0x80, 0xB8, 0xBD, 0xBC, 0xAA,
         0x8A, 0x10, 0x42, 0x53, 0x33, 0x23, 0x81, 0xB8, 0xCC, 0xBC, 0xBB, 0x89, 0x28, 0x54, 0x43, 0x22,
         0x02, 0xB9, 0xDC, 0xBB, 0xBA, 0x88, 0x31, 0x45, 0x43, 0x13, 0x81, 0xBA, 0xCD, 0xCB, 0x9A, 0x19,
         0x41, 0x53, 0x33, 0x22, 0x90, 0xBA, 0xCC, 0xBB, 0xAA, 0x89, 0x32, 0x53, 0x43, 0x33, 0x12, 0x90,
         0xCA, 0xDB, 0xBC, 0xAB, 0xAA, 0x00, 0x53, 0x54, 0x33, 0x33, 0x02, 0xB9, 0xCE, 0xAC, 0xBB, 0x8A,
         0x18, 0x53, 0x44, 0x32, 0x12, 0x81, 0xA9, 0xBD, 0xBD, 0xBA, 0x9A, 0x10, 0x32, 0x44, 0x33, 0x12,
         0x22, 0x12, 0x80, 0xDB, 0xAC, 0xBB, 0xBC, 0xBB, 0x0B, 0x72, 0x35, 0x33, 0x43, 0x12, 0xA8, 0xBD,
         0xBC, 0xBC, 0x9A, 0x9A, 0x18, 0x31, 0x45, 0x12, 0x11, 0x00, 0xA8, 0xAA, 0x09, 0x53
     };

#define  UFOSHOOT_DVI   1850

__align(2)
     const U8 UfoShoot_dvi[1850] = 
     {
         0x77, 0xD7, 0x77, 0x77, 0x0E, 0x08, 0xB7, 0xB7, 0x08, 0x17, 0xAB, 0x80, 0x80, 0x80, 0x00, 0x08,
         0x88, 0x08, 0x80, 0x88, 0x11, 0xA1, 0xAB, 0x30, 0x91, 0x8A, 0x20, 0x67, 0x93, 0xDE, 0x19, 0x35,
         0x82, 0xEB, 0x0A, 0x33, 0xE8, 0x9B, 0x21, 0x91, 0x28, 0x12, 0x72, 0x26, 0xC9, 0x9C, 0x21, 0x81,
         0xBA, 0xBB, 0x29, 0x35, 0x90, 0x40, 0x25, 0xAA, 0x19, 0x82, 0x9C, 0x01, 0xFB, 0x8B, 0x23, 0xA8,
         0x89, 0x54, 0x35, 0xB8, 0x0C, 0x35, 0xD0, 0xAE, 0x28, 0x13, 0xA9, 0x28, 0x01, 0x8A, 0x52, 0x91,
         0x0A, 0x25, 0xFA, 0x8C, 0x61, 0x91, 0xAB, 0x19, 0x43, 0x12, 0xE9, 0x1A, 0x14, 0xBA, 0x8B, 0x33,
         0x01, 0x9A, 0x9A, 0x73, 0x02, 0x89, 0x01, 0xED, 0x19, 0x13, 0xB9, 0x0A, 0x51, 0x16, 0xA8, 0x9C,
         0x22, 0xA1, 0x9D, 0x11, 0x88, 0x11, 0x00, 0x23, 0xB8, 0x1A, 0x00, 0x24, 0xFF, 0x2A, 0x83, 0xAA,
         0x52, 0x03, 0xBA, 0x38, 0xB1, 0x89, 0xFB, 0x30, 0xA1, 0x8C, 0x43, 0x24, 0xC9, 0x09, 0x21, 0x82,
         0xCF, 0x18, 0x01, 0x89, 0xA0, 0x4B, 0x57, 0xB9, 0x18, 0x91, 0x28, 0xA2, 0xBD, 0x19, 0x14, 0xC9,
         0x40, 0x80, 0x31, 0xD8, 0x39, 0x95, 0x9C, 0x32, 0xFA, 0x28, 0x02, 0xCA, 0x28, 0x13, 0x88, 0x8A,
         0x11, 0x31, 0xF0, 0x9C, 0x22, 0x00, 0xC8, 0x1B, 0x17, 0x8A, 0x12, 0xBC, 0x32, 0x91, 0x08, 0x89,
         0xAB, 0x73, 0xE0, 0x39, 0xA3, 0x8C, 0x25, 0xB9, 0x18, 0x09, 0x14, 0x9E, 0x23, 0xCA, 0x48, 0xA2,
         0x9B, 0x21, 0x11, 0x90, 0x99, 0x12, 0xCD, 0x51, 0x81, 0x8A, 0x10, 0xD9, 0x48, 0xA2, 0x19, 0xEB,
         0x72, 0xA1, 0x0C, 0x14, 0xCA, 0x30, 0x92, 0x9C, 0x11, 0x90, 0x00, 0x08, 0x22, 0xEA, 0x48, 0xA3,
         0x8B, 0x01, 0xD0, 0x2B, 0x84, 0x58, 0xD0, 0x58, 0xC0, 0x29, 0x92, 0x19, 0xA0, 0x0C, 0x25, 0xB9,
         0x2A, 0x15, 0xAC, 0x11, 0x81, 0xAB, 0x72, 0x91, 0x9B, 0x31, 0xA8, 0xBA, 0x71, 0xA4, 0x9B, 0x21,
         0x04, 0xBC, 0x40, 0xA1, 0x38, 0xF9, 0x38, 0xB3, 0x1C, 0x85, 0x8B, 0x03, 0x8A, 0x92, 0x0A, 0x24,
         0xCA, 0x28, 0xD8, 0x71, 0xC1, 0x1B, 0x25, 0xCA, 0x28, 0x90, 0x21, 0xBC, 0x43, 0x90, 0x09, 0xA9,
         0x32, 0xAB, 0x13, 0x1A, 0xC0, 0x51, 0x99, 0x24, 0xEB, 0x88, 0x19, 0x44, 0xC0, 0x1C, 0x84, 0x19,
         0x90, 0xBA, 0x79, 0x06, 0xAD, 0x31, 0xA8, 0x40, 0xC0, 0x2A, 0x13, 0xAA, 0x8C, 0x35, 0xC9, 0x39,
         0x92, 0x0E, 0x13, 0xAA, 0x01, 0x80, 0x00, 0xA2, 0xAF, 0x26, 0xB9, 0x01, 0x0A, 0x06, 0x9C, 0x12,
         0x80, 0xBA, 0x62, 0xB1, 0x0B, 0x13, 0x8B, 0x01, 0x01, 0x92, 0xAE, 0x53, 0xDA, 0x20, 0x03, 0xB9,
         0x18, 0xC1, 0x3B, 0x17, 0xCA, 0x1A, 0x35, 0xB9, 0x0A, 0x12, 0xCA, 0x68, 0x94, 0x9C, 0x11, 0x11,
         0xBA, 0x10, 0x11, 0xAA, 0x43, 0xA1, 0x8F, 0x12, 0x0C, 0x05, 0xBB, 0x41, 0xA0, 0x32, 0xFA, 0x4A,
         0x83, 0xAD, 0x32, 0xB9, 0x52, 0xA1, 0x9B, 0x10, 0x91, 0x10, 0xD8, 0x48, 0xB2, 0x49, 0xA5, 0x8D,
         0x84, 0x8B, 0x22, 0x89, 0x22, 0xCE, 0x51, 0xA1, 0x1C, 0x83, 0x8C, 0x02, 0x28, 0xA2, 0xAB, 0x21,
         0x8C, 0x26, 0xAD, 0x22, 0x09, 0x92, 0x8A, 0x41, 0xF9, 0x39, 0xA4, 0x1A, 0xA4, 0x2C, 0x94, 0x0B,
         0x91, 0x21, 0xB9, 0x20, 0x1A, 0xA4, 0x7B, 0xD2, 0x59, 0xE8, 0x20, 0x80, 0xA0, 0x68, 0xC0, 0x28,
         0xB1, 0x19, 0x03, 0x9C, 0x32, 0xCA, 0x50, 0xB0, 0x28, 0xA0, 0x88, 0x72, 0xB0, 0x0C, 0x12, 0xA0,
         0x9B, 0x44, 0xBA, 0x25, 0x88, 0xCA, 0x20, 0x1A, 0xC5, 0x1E, 0x05, 0x1A, 0xA0, 0x59, 0xC8, 0x40,
         0xC9, 0x20, 0x01, 0x98, 0x18, 0x90, 0xA9, 0x31, 0xB9, 0x46, 0xDA, 0x48, 0xB1, 0x19, 0xB8, 0x71,
         0xA1, 0x09, 0x83, 0xBA, 0x31, 0xDC, 0x62, 0xB9, 0x41, 0x99, 0x03, 0xAC, 0x32, 0xC8, 0x28, 0xA8,
         0x42, 0xB9, 0x28, 0xB3, 0x2D, 0x95, 0x8A, 0x80, 0x01, 0x40, 0xFA, 0x48, 0x90, 0x00, 0x88, 0x00,
         0xBB, 0x61, 0x91, 0x1C, 0x13, 0x8A, 0xAA, 0x33, 0x1D, 0xB6, 0x2E, 0xA4, 0x2A, 0xA0, 0x29, 0x23,
         0xF0, 0x48, 0xD2, 0x2B, 0x82, 0x8B, 0x18, 0x23, 0x09, 0xA0, 0x28, 0x00, 0xF9, 0x1B, 0x25, 0xB9,
         0x21, 0x9D, 0x14, 0x9D, 0x43, 0xB2, 0x0E, 0x12, 0x8B, 0x91, 0x18, 0x12, 0xA0, 0x8F, 0x23, 0xBA,
         0x08, 0x43, 0xA1, 0x0A, 0x01, 0x22, 0xAF, 0xC9, 0x71, 0xA0, 0x00, 0x18, 0xE0, 0x58, 0xA3, 0x0B,
         0xA2, 0x2B, 0xA2, 0x99, 0x40, 0x92, 0xCA, 0x78, 0x93, 0xAA, 0x3A, 0x82, 0x45, 0xCD, 0x10, 0x08,
         0x80, 0x92, 0x0E, 0x05, 0x0C, 0x06, 0xA9, 0x98, 0x31, 0xF8, 0x29, 0x83, 0x1A, 0x93, 0x39, 0xFA,
         0x48, 0xB0, 0x28, 0x88, 0x01, 0x89, 0x13, 0xEB, 0x49, 0xA3, 0x1D, 0x82, 0x10, 0xBB, 0x34, 0xDA,
         0x48, 0xA0, 0x28, 0x81, 0xA8, 0x3A, 0xE8, 0x71, 0xB1, 0x0C, 0x42, 0xA0, 0x8C, 0x03, 0x19, 0xC0,
         0x29, 0x01, 0x98, 0x44, 0xF9, 0x29, 0x84, 0xAA, 0x39, 0x84, 0x9D, 0x41, 0x91, 0x89, 0x98, 0x19,
         0x93, 0x6A, 0xD2, 0x1D, 0x15, 0xA9, 0x99, 0x58, 0xA2, 0x1B, 0x82, 0x09, 0x08, 0x80, 0xAB, 0x56,
         0xB8, 0x20, 0xBB, 0x73, 0xC9, 0x2A, 0x12, 0x91, 0x8D, 0x25, 0xA8, 0xAB, 0x34, 0xCB, 0x41, 0xA1,
         0xBA, 0x62, 0xB1, 0x1A, 0x84, 0xBA, 0x41, 0xA1, 0x8C, 0x24, 0xA8, 0x10, 0x8C, 0x15, 0xBE, 0x30,
         0x04, 0xBA, 0x51, 0xB1, 0x2A, 0xA3, 0x9E, 0x31, 0x90, 0x2B, 0x83, 0x0B, 0x16, 0xDA, 0x39, 0x84,
         0x8B, 0x02, 0xAA, 0x40, 0xC1, 0x0E, 0x14, 0x88, 0x80, 0x18, 0xC8, 0x30, 0xF9, 0x30, 0xA9, 0x43,
         0xA8, 0xAA, 0x58, 0xA1, 0x62, 0xC8, 0x18, 0xA9, 0x22, 0xBC, 0x22, 0x8A, 0x57, 0xB0, 0x0A, 0x98,
         0x30, 0xC0, 0x1B, 0x33, 0x91, 0xB9, 0x72, 0xE2, 0x1B, 0x94, 0x0B, 0x14, 0x90, 0x8C, 0x13, 0xAB,
         0x23, 0xBA, 0x60, 0x84, 0x9E, 0x22, 0xBA, 0x12, 0x8C, 0x27, 0xD9, 0x20, 0x90, 0x0A, 0x81, 0x98,
         0x00, 0x32, 0x94, 0x9C, 0x02, 0x9B, 0xA0, 0x0C, 0x27, 0x8A, 0x31, 0xD8, 0x49, 0xB1, 0x0D, 0x22,
         0x90, 0x29, 0xC1, 0x3B, 0xA4, 0x2B, 0xF1, 0x3A, 0x17, 0x8A, 0x98, 0x20, 0x90, 0xD9, 0x4A, 0x93,
         0x29, 0xA9, 0x54, 0xDB, 0x50, 0xB0, 0x1A, 0x13, 0x99, 0xA1, 0x0B, 0x93, 0x8A, 0x56, 0xD0, 0x29,
         0x03, 0xFA, 0x39, 0x84, 0x9C, 0x11, 0x88, 0x11, 0x98, 0x21, 0xBB, 0x22, 0x8A, 0x13, 0xFC, 0x50,
         0x90, 0x89, 0x0A, 0x26, 0xAC, 0x32, 0xB8, 0x08, 0x33, 0xFC, 0x30, 0xA9, 0x31, 0x9A, 0x21, 0x88,
         0xB0, 0x50, 0xE9, 0x40, 0xA0, 0xB9, 0x71, 0xC0, 0x48, 0x90, 0x29, 0xB1, 0x1C, 0x13, 0xEB, 0x51,
         0xC0, 0x49, 0x92, 0x8B, 0x18, 0x22, 0xFA, 0x38, 0x92, 0x8A, 0xA2, 0x5B, 0x94, 0x0C, 0x82, 0x88,
         0x90, 0x28, 0x91, 0xC8, 0x2D, 0x07, 0x9A, 0x11, 0x80, 0x81, 0xBE, 0x54, 0xD8, 0x29, 0x83, 0xA8,
         0x09, 0x14, 0xBA, 0x29, 0x16, 0xEA, 0x38, 0xA3, 0x8C, 0x32, 0xC9, 0x39, 0x05, 0xDA, 0x28, 0x92,
         0x08, 0x89, 0x23, 0xCC, 0x50, 0xA1, 0x0C, 0x12, 0x08, 0x98, 0x18, 0xB8, 0x72, 0xF1, 0x1A, 0x14,
         0xAA, 0x30, 0xB8, 0x58, 0xC1, 0x3A, 0xA1, 0x59, 0xB0, 0x38, 0xB0, 0x0C, 0x24, 0xAB, 0x41, 0xB9,
         0x71, 0xC1, 0x0A, 0x13, 0xAA, 0x83, 0xAE, 0x44, 0xA0, 0x8A, 0x22, 0xBA, 0x71, 0xC9, 0x50, 0xB0,
         0x1A, 0x02, 0x01, 0xAB, 0x30, 0xA0, 0x39, 0x93, 0x8D, 0x21, 0xD8, 0x59, 0xE1, 0x3A, 0x06, 0xBA,
         0x30, 0xB1, 0x1A, 0x23, 0xA9, 0xAC, 0x34, 0xA8, 0x94, 0x9F, 0x25, 0xCA, 0x28, 0x13, 0xBA, 0x28,
         0xA1, 0x8A, 0x52, 0xD8, 0x3A, 0x05, 0x89, 0x08, 0xA0, 0x8C, 0x22, 0x82, 0xBB, 0x20, 0x43, 0x86,
         0xAF, 0x31, 0xC8, 0x50, 0xA2, 0x0E, 0x12, 0xAC, 0x51, 0x90, 0x0A, 0x21, 0x80, 0x88, 0xC9, 0x1A,
         0x23, 0xD9, 0x59, 0x91, 0x58, 0xB0, 0x1B, 0x01, 0x02, 0xEA, 0x2A, 0x15, 0xD9, 0x3B, 0x16, 0xBA,
         0x48, 0x83, 0xAC, 0x11, 0x99, 0x20, 0x91, 0xAB, 0x46, 0xB9, 0x68, 0xA1, 0x8D, 0x11, 0x11, 0x98,
         0xAB, 0x60, 0x04, 0xCC, 0x38, 0x93, 0x8A, 0x21, 0xC0, 0x0A, 0x15, 0xD9, 0x19, 0x35, 0xCA, 0x0A,
         0x22, 0xA1, 0x8B, 0x12, 0xA8, 0x50, 0x82, 0x88, 0xE9, 0x1A, 0xA1, 0x60, 0x91, 0x8A, 0x21, 0xB0,
         0x58, 0x92, 0xEB, 0x39, 0x84, 0x9C, 0x32, 0xD9, 0x29, 0x15, 0xAA, 0x32, 0xB0, 0xAC, 0x00, 0x60,
         0xB2, 0x8F, 0x33, 0xB8, 0x29, 0x91, 0xBB, 0x63, 0x91, 0xA0, 0x1B, 0x07, 0xCC, 0x40, 0x91, 0x0A,
         0x23, 0xB0, 0x1A, 0xA1, 0x9F, 0x31, 0x08, 0x63, 0xC8, 0x8A, 0x22, 0x98, 0xAB, 0x19, 0x35, 0x82,
         0x99, 0x42, 0xF9, 0x0C, 0x92, 0x1A, 0x17, 0xB9, 0x29, 0x25, 0xC9, 0x0A, 0x92, 0x0D, 0x45, 0xC8,
         0x8A, 0x24, 0xA9, 0x29, 0x91, 0x9A, 0x44, 0xC1, 0xAC, 0x71, 0x92, 0xAC, 0x41, 0xA2, 0x8C, 0x32,
         0xD8, 0x2A, 0x23, 0xC9, 0x2A, 0x03, 0x89, 0x98, 0x0A, 0x24, 0xDC, 0x58, 0x82, 0x8A, 0x00, 0x98,
         0x19, 0x12, 0xA9, 0x0A, 0x21, 0x52, 0xB2, 0x8F, 0xA0, 0x2A, 0x37, 0xBA, 0x19, 0x11, 0x80, 0x88,
         0xCC, 0x58, 0x93, 0x9D, 0x53, 0x90, 0xAB, 0x31, 0xA2, 0x0B, 0x91, 0x2B, 0x07, 0xB9, 0x31, 0xE8,
         0x48, 0xA3, 0x1B, 0xB1, 0x0B, 0x34, 0xF9, 0x59, 0x85, 0xAD, 0x41, 0xA1, 0x89, 0x80, 0x10, 0x00,
         0xA9, 0x49, 0x85, 0xAC, 0x11, 0x99, 0x61, 0xA1, 0x0A, 0x90, 0x30, 0xA3, 0xCF, 0x73, 0xA0, 0x0B,
         0x82, 0x8A, 0x43, 0xB8, 0x2B, 0x05, 0x0B, 0x82, 0x9D, 0x32, 0xC8, 0x1A, 0x23, 0x10, 0xA9, 0xAC,
         0x72, 0x82, 0xBD, 0x2A, 0x44, 0x91, 0x9A, 0xA8, 0x28, 0x26, 0xDC, 0x29, 0x33, 0xD9, 0x29, 0x14,
         0xD9, 0x89, 0x42, 0xA1, 0x9D, 0x21, 0x81, 0x88, 0x00, 0x98, 0x44, 0xD9, 0x8B, 0x32, 0x80, 0x99,
         0x00, 0x28, 0x37, 0xEA, 0x8A, 0x31, 0x02, 0xBB, 0x40, 0x13, 0xBD, 0x0A, 0x21, 0x11, 0xA0, 0x0D,
         0x37, 0xD9, 0x19, 0x91, 0x08, 0x10, 0xDA, 0x50, 0x02, 0xA9, 0x8A, 0x22, 0xA9, 0x21, 0x92, 0x9E,
         0x24, 0xDB, 0x19, 0x35, 0xD8, 0x1A, 0x13, 0x98, 0x98, 0xBB, 0x69, 0x26, 0xE9, 0x0A, 0x26, 0xD8,
         0x8A, 0x43, 0x98, 0x0A, 0x01, 0x88, 0x10, 0xA1, 0xAC, 0x41, 0x82, 0xB9, 0x19, 0x26, 0xB8, 0x2A,
         0xB2, 0xBF, 0x61, 0x03, 0xC9, 0x8A, 0x52, 0x81, 0xB9, 0x8A, 0x01, 0x30, 0x02, 0x9B, 0x00, 0xBA,
         0x74, 0x93, 0xBF, 0x49, 0x23, 0xA9, 0x99, 0x99, 0x50, 0x15, 0xDA, 0x89, 0x41, 0x82, 0xCA, 0x18,
         0x13, 0xB9, 0x19, 0xA0, 0x52, 0xB1, 0xAE, 0x40, 0x26, 0xB8, 0xAC, 0x39, 0x15, 0xB8, 0x9A, 0x21,
         0x33, 0xC0, 0x9B, 0x33, 0xF9, 0x3A, 0x05, 0xAB, 0x22, 0xA8, 0x9A, 0x22, 0x20, 0x23, 0xDD, 0x20,
         0xC0, 0x0A, 0x80, 0x56, 0xB1, 0x9E, 0x32, 0xB0, 0x0B, 0x34, 0xB9, 0x1A, 0x24, 0xD9, 0x19, 0x25,
         0xDA, 0x0A, 0x33, 0x92, 0xCD, 0x38, 0x16, 0xCB, 0x30, 0x82, 0xBB, 0x20, 0xA1, 0x2A, 0x14, 0x98,
         0xDA, 0x40, 0x92, 0x1A, 0x03, 0xBD, 0x20, 0x81, 0x41, 0xC2, 0xBF, 0x40, 0x23, 0xC9, 0x8A, 0x34,
         0xA0, 0xAB, 0x98, 0x38, 0x25, 0xB9, 0x8A, 0x31, 0x47, 0xD8, 0x8C, 0x32, 0xA1, 0x9B, 0x10, 0x80,
         0x44, 0x92, 0xCC, 0x9C, 0x64, 0xA1, 0x9C, 0x31, 0x01, 0x98, 0xAA, 0x38, 0x14, 0x98, 0xAC, 0x88,
         0x30, 0x15, 0xA9, 0x0B, 0x47, 0xB0, 0x9F, 0x20, 0x12, 0x98, 0x8C, 0x31, 0x80, 0x11, 0xD9, 0x8B,
         0x33, 0xA1, 0xAC, 0x60, 0x14, 0xDB, 0x29, 0x14, 0xCB, 0x19, 0x15, 0x99, 0x89, 0x20, 0x82, 0x9A,
         0xA9, 0x68, 0x84, 0xCB, 0x08, 0x32, 0x04, 0xCC, 0x19, 0x42, 0x13, 0xFC, 0x8A, 0x33, 0x82, 0xCB,
         0x29, 0x14, 0x80, 0xB9, 0x8C, 0x52, 0xA0, 0x0A, 0x63, 0xA0, 0xAD, 0x38, 0x43, 0xB8, 0x9B, 0x21,
         0x22, 0xA0, 0xCD, 0x29, 0x26, 0x90, 0xAC, 0x38, 0x14, 0xBA, 0x0B, 0x22, 0x21, 0xA0, 0x8D, 0x63,
         0xB1, 0x9F, 0x21, 0xA0, 0x39, 0x14, 0xDB, 0x2A, 0x26, 0xA8, 0x9A, 0x08, 0x80, 0x19, 0x24, 0xB9,
         0x3A, 0x07, 0xAA, 0x10, 0xD0, 0x1A, 0x26, 0xB9, 0x0A, 0x21, 0x03, 0xBD, 0x40, 0x81, 0x89, 0x01,
         0xA9, 0x32, 0xFD, 0x38, 0x23, 0xCA, 0x29, 0x82, 0xAB, 0x50, 0x03, 0xDC, 0x2A, 0x44, 0xA0, 0x9C,
         0x08, 0x22, 0x23, 0xD9, 0xBC, 0x50, 0x14, 0xCA, 0x2A, 0x04, 0xB9, 0x30, 0x04, 0xDB, 0x19, 0xA1,
         0x1C, 0x36, 0xA1, 0xAC, 0x20, 0x22, 0xB8, 0x9C, 0x28, 0x82, 0xBB, 0x61, 0x13, 0x00, 0x88, 0xE0,
         0x9E, 0x52, 0x92, 0xAA, 0xAA, 0x2A, 0x47, 0x91, 0xBA, 0x28, 0x12, 0x88, 0xB8, 0xAE, 0x50, 0x04,
         0xB9, 0x9B, 0x42, 0x23, 0xC9, 0x9D, 0x53, 0x82, 0xBB, 0x29, 0x81, 0x9C, 0x52, 0x92, 0xCC, 0x28,
         0x24, 0x91, 0xAB, 0x18, 0x01, 0x00, 0xD9, 0x8B, 0x63, 0x02, 0x08, 0xA8, 0xBD, 0x19, 0x23, 0x01,
         0x99, 0x1A, 0x56, 0x02, 0xDA, 0x9B, 0x41, 0xA0, 0x9C, 0x52, 0x13, 0xCA, 0x9C, 0x38, 0x24, 0x00,
         0x88, 0xDB, 0x9A, 0x41, 0x22, 0xA0, 0xAB, 0x18, 0x24, 0x80, 0x88, 0x90, 0xCA, 0x89, 0x31, 0x02,
         0xFB, 0x9B, 0x61, 0x33, 0x91, 0xA9, 0x8A, 0x98, 0xAA, 0x39, 0x34, 0xA1, 0xAA, 0x62, 0x13, 0xEA,
         0xBC, 0x29, 0x36, 0x83, 0xDB, 0x89, 0x00, 0x81, 0x11, 0x10, 0x00, 0x10, 0x00, 0xEA, 0xBD, 0x09,
         0x34, 0x13, 0x99, 0x0A, 0x10, 0x82, 0xEA, 0xAB, 0x20, 0x35, 0x03, 0xCA, 0x9C, 0x30, 0x33, 0x90,
         0xDB, 0x9A, 0x32, 0x25, 0xA8, 0xBC, 0x8A, 0x22, 0x23, 0x81
     };

#endif /* __MMI_GAME_MULTICHANNEL_SOUND__ */ 

/******************************************AUDIO************************************/


/*****************************************************************************
 * FUNCTION
 *  mmi_gx_ufo_enter_gfx
 * DESCRIPTION
 *  Set Game Framework (GFX) Parameter
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
/* keep this game old naming style */
void mmi_gx_ufo_enter_gfx(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    /* Game menu */
    GFX.game_data.game_img_id = IMG_ID_GX_UFO_GAME_ICON;    /* game icon img ID */
    GFX.game_data.game_str_id = STR_ID_GX_UFO_GAME_NAME;    /* game name string ID */
    GFX.game_data.menu_resume_str_id = STR_GAME_RESUME;     /* "Resume" string ID */
    GFX.game_data.menu_new_str_id = STR_GAME_NEW;           /* "New Game" string ID */
    GFX.game_data.menu_level_str_id = 0;                    /* "Game Level" string ID */
    GFX.game_data.menu_grade_str_id = STR_GAME_GRADE;       /* "Best Grade" string ID */
    GFX.game_data.menu_help_str_id = STR_GLOBAL_HELP;         /* "Game Help" string ID */

    /* level / grade */
    GFX.game_data.level_count = 1;                          /* how many levels */
    GFX.game_data.level_str_id_list[0] = STR_GAME_SCORE;    /* level string ID */

    /* add slot in NVRAMEnum.h */
    GFX.game_data.grade_nvram_id_list[0] = NVRAM_GX_UFO_SCORE;  /* grade slot in NVRAM (short) */

    /* help */
    GFX.game_data.help_str_id = STR_ID_GX_UFO_HELP_DESCRIPTION; /* help description string id */

    /* misc */
    GFX.game_data.grade_value_ptr = (S16*) (&g_gx_ufo_context.game_grade);     /* current level's grade (S16*) */
    GFX.game_data.level_index_ptr = (U8*) (&g_gx_ufo_context.game_level);      /* ptr to current level index (U8*) */
    GFX.game_data.is_new_game = (BOOL*) (&g_gx_ufo_context.is_new_game);       /* ptr to new game flag (BOOL*) */

    /* function ptr */
    GFX.game_data.best_grade_func_ptr = mmi_gx_ufo_calc_best_grade;     /* function to calculate best grade */
    GFX.game_data.enter_game_func_ptr = mmi_gx_ufo_enter_game;  /* function to enter new game */
    GFX.game_data.exit_game_func_ptr = mmi_gx_ufo_exit_game;    /* function to exit game */
    GFX.game_data.draw_gameover_func_ptr = mmi_gx_ufo_draw_gameover;    /* function to draw gameover screen */

    /* some flags */
    GFX.game_data.is_keypad_audio_enable = FALSE;   /* play keypad tone or not */

    mmi_gfx_entry_menu_screen();
}


/*****************************************************************************
 * FUNCTION
 *  mmi_gx_ufo_calc_best_grade
 * DESCRIPTION
 *  Calculate new best grade [Callback required by GFX]
 * PARAMETERS
 *  old_grade       [IN]        
 *  new_grade       [IN]        
 * RETURNS
 *  S16
 *****************************************************************************/
S16 mmi_gx_ufo_calc_best_grade(S16 old_grade, S16 new_grade)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    /* compare the best grade and return it */
    if (new_grade > old_grade)
    {
        return new_grade;
    }
    else
    {
        return old_grade;
    }
}


/*****************************************************************************
 * FUNCTION
 *  mmi_gx_ufo_draw_gameover
 * DESCRIPTION
 *  Draw Gameover Screen [Callback required by GFX]
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_gx_ufo_draw_gameover(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    GFX_PLAY_AUDIO_GAMEOVER();

    /* call this function to draw standard gameover screen */
#ifndef __MMI_GAME_MULTI_LANGUAGE_SUPPORT__
    mmi_gfx_draw_gameover_screen(
        IMG_ID_GX_UFO_GOTEXT,
        IMG_ID_GX_UFO_GRADESMAP,
        IMG_ID_GX_UFO_GOPIC,
        g_gx_ufo_context.game_grade);
#else
    mmi_gfx_draw_gameover_screen(
        mmi_gfx_get_multilanguage_image_ID(
         mmi_ufo_language_index, 
         IMG_ID_GX_UFO_LEVEL_CLEAR_LANGUAGE0, 
         MMI_UFO_STRING_COUNT, 
         MMI_UFO_STRING_GAMEOVER),
        IMG_ID_GX_UFO_GRADESMAP,
        IMG_ID_GX_UFO_GOPIC,
        g_gx_ufo_context.game_grade);
#endif
}


/*****************************************************************************
 * FUNCTION
 *  mmi_gx_ufo_enter_game
 * DESCRIPTION
 *  Enter Game [Callback required by GFX]
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_gx_ufo_enter_game(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
#ifdef __MMI_GAME_MULTI_LANGUAGE_SUPPORT__  //used for multilanguage
    mmi_ufo_language_index = g_mmi_game_current_language_index;
    mmi_gfx_check_image_get_valid_language(
        &mmi_ufo_language_index, 
        IMG_ID_GX_UFO_LEVEL_CLEAR_LANGUAGE0, 
        MMI_UFO_STRING_COUNT);
#endif  /* __MMI_GAME_MULTI_LANGUAGE_SUPPORT__ */
    if (g_gx_ufo_context.is_new_game == TRUE)
    {
        mmi_gx_ufo_init_game(); /* is new game, otherwise resume game */
    }

    /* clear all keys */
    g_gx_ufo_context.up_key_pressed = FALSE;
    g_gx_ufo_context.down_key_pressed = FALSE;
    g_gx_ufo_context.left_key_pressed = FALSE;
    g_gx_ufo_context.right_key_pressed = FALSE;

    g_gx_ufo_context.is_new_game = FALSE;
    g_gx_ufo_context.is_gameover = FALSE;

    gdi_layer_multi_layer_enable();

    gdi_layer_get_base_handle(&g_gx_ufo_context.background);

    gdi_layer_create(0, 0, MMI_GX_UFO_LCD_WIDTH, MMI_GX_UFO_LCD_HEIGHT, &g_gx_ufo_context.foreground);
    gdi_layer_set_active(g_gx_ufo_context.foreground);
    gdi_layer_set_source_key(TRUE, GDI_COLOR_BLUE); /* set pure-blue as the transparent color in foreground */
    gdi_layer_clear_background(GDI_COLOR_BLUE);     /* clean foreground layer */

    SetKeyHandler(mmi_gx_ufo_key_2_press, KEY_2, KEY_EVENT_DOWN);
    SetKeyHandler(mmi_gx_ufo_key_8_press, KEY_8, KEY_EVENT_DOWN);
    SetKeyHandler(mmi_gx_ufo_key_4_press, KEY_4, KEY_EVENT_DOWN);
    SetKeyHandler(mmi_gx_ufo_key_6_press, KEY_6, KEY_EVENT_DOWN);

    SetKeyHandler(mmi_gx_ufo_key_2_press, KEY_UP_ARROW, KEY_EVENT_DOWN);
    SetKeyHandler(mmi_gx_ufo_key_8_press, KEY_DOWN_ARROW, KEY_EVENT_DOWN);
    SetKeyHandler(mmi_gx_ufo_key_4_press, KEY_LEFT_ARROW, KEY_EVENT_DOWN);
    SetKeyHandler(mmi_gx_ufo_key_6_press, KEY_RIGHT_ARROW, KEY_EVENT_DOWN);

    SetKeyHandler(mmi_gx_ufo_key_2_release, KEY_2, KEY_EVENT_UP);
    SetKeyHandler(mmi_gx_ufo_key_8_release, KEY_8, KEY_EVENT_UP);
    SetKeyHandler(mmi_gx_ufo_key_4_release, KEY_4, KEY_EVENT_UP);
    SetKeyHandler(mmi_gx_ufo_key_6_release, KEY_6, KEY_EVENT_UP);

    SetKeyHandler(mmi_gx_ufo_key_2_release, KEY_UP_ARROW, KEY_EVENT_UP);
    SetKeyHandler(mmi_gx_ufo_key_8_release, KEY_DOWN_ARROW, KEY_EVENT_UP);
    SetKeyHandler(mmi_gx_ufo_key_4_release, KEY_LEFT_ARROW, KEY_EVENT_UP);
    SetKeyHandler(mmi_gx_ufo_key_6_release, KEY_RIGHT_ARROW, KEY_EVENT_UP);

    gdi_layer_set_active(g_gx_ufo_context.background);

    /* draw background image (on background layer) */
    mmi_gx_ufo_draw_static_background();

#ifdef __MMI_GAME_MULTICHANNEL_SOUND__

    GFX_OPEN_BACKGROUND_SOUND(BackGround_UFO_Midi, BACKGROUND_UFO_MIDI, g_gx_ufo_context.background_midi);
    GFX_PLAY_BACKGROUND_SOUND(g_gx_ufo_context.background_midi);

    GFX_OPEN_DUMMY_BACKGROUND_SOUND();
    GFX_PLAY_DUMMY_BACKGROUND_SOUND();

    GFX_OPEN_SOUND_EFFECTS_MIDI(UfoEat_midi, UFOEAT_MIDI, 1, g_gx_ufo_context.eat_midi);
    GFX_OPEN_MULTICHANNEL_WAV(UfoHit_midi, UFOHIT_MIDI, 1, g_gx_ufo_context.hit_midi);
    GFX_OPEN_MULTICHANNEL_WAV(UfoExplode_wav, UFOEXPLODE_WAV, 1, g_gx_ufo_context.explode_wav);
    GFX_OPEN_MULTICHANNEL_WAV(UfoShoot_wav, UFOSHOOT_WAV, 1, g_gx_ufo_context.shoot_wav);

    g_gx_ufo_context.is_sound_close = 0;

#endif /* __MMI_GAME_MULTICHANNEL_SOUND__ */ 

    /* start game loop */
    mmi_gx_ufo_cyclic_timer();
}


/*****************************************************************************
 * FUNCTION
 *  mmi_gx_ufo_draw_static_background
 * DESCRIPTION
 *  Draw static background
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_gx_ufo_draw_static_background(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    gdi_draw_solid_rect(0, 0, MMI_GX_UFO_LCD_WIDTH - 1, MMI_GX_UFO_LCD_HEIGHT - 1, GDI_COLOR_BLACK);
#ifndef __MMI_GAME_MULTI_LANGUAGE_SUPPORT__
#if defined(__MMI_MAINLCD_128X160__) || defined(__MMI_MAINLCD_128X128__)
    gdi_image_draw_id(2, 2, IMG_ID_GX_UFO_SCORE);
#elif defined(__MMI_MAINLCD_176X220__)
    gdi_image_draw_id(4, 4, IMG_ID_GX_UFO_SCORE);
#endif 

#if defined(__MMI_MAINLCD_128X160__) || defined(__MMI_MAINLCD_128X128__)
    gdi_image_draw_id(66, 2, IMG_ID_GX_UFO_ENERGY);
#elif defined(__MMI_MAINLCD_176X220__)
    gdi_image_draw_id(92, 4, IMG_ID_GX_UFO_ENERGY);
#endif 
#endif /* __MMI_GAME_MULTI_LANGUAGE_SUPPORT__ */

    mmi_gx_ufo_draw_score();
    mmi_gx_ufo_draw_energy();
    mmi_gx_ufo_draw_background();
}


/*****************************************************************************
 * FUNCTION
 *  mmi_gx_ufo_draw_score
 * DESCRIPTION
 *  Draw score values
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_gx_ufo_draw_score(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    U8 total_digit;
    S16 tmp_digit;
    S16 tmp_grade;
    S16 position_x;
    U8 i;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    total_digit = 5;
#if defined(__MMI_MAINLCD_128X160__) || defined(__MMI_MAINLCD_128X128__)
    position_x = 57;
#elif defined(__MMI_MAINLCD_176X220__)
    position_x = 78;
#endif 

    gdi_layer_set_active(g_gx_ufo_context.background);
    gdi_layer_push_clip();
    gdi_layer_set_clip(0, 0, MMI_GX_UFO_LCD_WIDTH - 1, MMI_GX_UFO_ORIGIN - 1);
    tmp_grade = g_gx_ufo_context.game_grade;

    for (i = 0; i < total_digit; i++)
    {
        tmp_digit = tmp_grade % 10;
        tmp_grade = tmp_grade / 10;
#ifndef __MMI_GAME_MULTI_LANGUAGE_SUPPORT__
    #if defined(__MMI_MAINLCD_128X160__) || defined(__MMI_MAINLCD_128X128__)
        gdi_image_draw_id(position_x, 2, IMG_ID_GX_UFO_DIGIT_0 + tmp_digit);
        position_x = position_x - MMI_GX_UFO_DIGIT_WIDTH - 1;
    #elif defined(__MMI_MAINLCD_176X220__)
        gdi_image_draw_id(position_x, 4, (U16) (IMG_ID_GX_UFO_DIGIT_0 + tmp_digit));
        position_x = position_x - MMI_GX_UFO_DIGIT_WIDTH - 2;
    #endif 
#else
    #if defined(__MMI_MAINLCD_128X160__) || defined(__MMI_MAINLCD_128X128__)
        gdi_image_draw_id(position_x - 20, 2, IMG_ID_GX_UFO_DIGIT_0 + tmp_digit);
        position_x = position_x - MMI_GX_UFO_DIGIT_WIDTH - 1;
    #elif defined(__MMI_MAINLCD_176X220__)
        gdi_image_draw_id(position_x - 30, 4, (U16) (IMG_ID_GX_UFO_DIGIT_0 + tmp_digit));
        position_x = position_x - MMI_GX_UFO_DIGIT_WIDTH - 2;
    #endif
#endif  /* __MMI_GAME_MULTI_LANGUAGE_SUPPORT__ */
    }

    gdi_layer_pop_clip();
    gdi_layer_set_active(g_gx_ufo_context.foreground);
}


/*****************************************************************************
 * FUNCTION
 *  mmi_gx_ufo_draw_energy
 * DESCRIPTION
 *  Draw energy status
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_gx_ufo_draw_energy(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    U8 i;
    U8 position_x;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    gdi_layer_set_active(g_gx_ufo_context.background);
    gdi_layer_push_clip();
    gdi_layer_set_clip(0, 0, MMI_GX_UFO_LCD_WIDTH - 1, MMI_GX_UFO_ORIGIN - 1);

#if defined(__MMI_MAINLCD_128X160__) || defined(__MMI_MAINLCD_128X128__)
    position_x = 103;
#elif defined(__MMI_MAINLCD_176X220__)
    position_x = 142;
#endif 

#if defined(__MMI_MAINLCD_128X160__) || defined(__MMI_MAINLCD_128X128__)
    gdi_draw_solid_rect(
        position_x,
        2,
        position_x + MMI_GX_UFO_ENERGY_UNIT_COUNT * (MMI_GX_UFO_ENERGY_UNIT_WIDTH + 1),
        10,
        GDI_COLOR_BLACK);
#elif defined(__MMI_MAINLCD_176X220__)
    gdi_draw_solid_rect(
        position_x,
        2,
        position_x + MMI_GX_UFO_ENERGY_UNIT_COUNT * (MMI_GX_UFO_ENERGY_UNIT_WIDTH + 2),
        10,
        GDI_COLOR_BLACK);
#endif 

    for (i = 0; i < g_gx_ufo_context.energy; i++)
    {
    #if defined(__MMI_MAINLCD_128X160__) || defined(__MMI_MAINLCD_128X128__)
        gdi_image_draw_id(position_x, 2, IMG_ID_GX_UFO_ENERGY_UNIT);
        position_x = position_x + MMI_GX_UFO_ENERGY_UNIT_WIDTH + 1;
    #elif defined(__MMI_MAINLCD_176X220__)
        gdi_image_draw_id(position_x, 4, IMG_ID_GX_UFO_ENERGY_UNIT);
        position_x = position_x + MMI_GX_UFO_ENERGY_UNIT_WIDTH + 2;
    #endif 
    }

    gdi_layer_pop_clip();
    gdi_layer_set_active(g_gx_ufo_context.foreground);
}


/*****************************************************************************
 * FUNCTION
 *  mmi_gx_ufo_exit_game
 * DESCRIPTION
 *  Exit Game [Callback required by GFX]
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_gx_ufo_exit_game(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    gui_cancel_timer(mmi_gx_ufo_cyclic_timer);  /* cancle the looping timer */
#ifdef __MMI_GAME_MULTICHANNEL_SOUND__
if (g_gx_ufo_context.is_sound_close == 0)
{
    GFX_STOP_SOUND_EFFECTS_MIDI(g_gx_ufo_context.eat_midi);
    GFX_STOP_MULTICHANNEL_WAV(g_gx_ufo_context.hit_midi);

    GFX_STOP_MULTICHANNEL_WAV(g_gx_ufo_context.explode_wav);
    GFX_STOP_MULTICHANNEL_WAV(g_gx_ufo_context.shoot_wav);

    GFX_CLOSE_SOUND_EFFECTS_MIDI(g_gx_ufo_context.eat_midi);
    GFX_CLOSE_MULTICHANNEL_WAV(g_gx_ufo_context.hit_midi);
    GFX_CLOSE_MULTICHANNEL_WAV(g_gx_ufo_context.shoot_wav);
    GFX_CLOSE_MULTICHANNEL_WAV(g_gx_ufo_context.explode_wav);

    GFX_STOP_DUMMY_BACKGROUND_SOUND();
    GFX_CLOSE_DUMMY_BACKGROUND_SOUND();

    GFX_STOP_BACKGROUND_SOUND(g_gx_ufo_context.background_midi);
    GFX_CLOSE_BACKGROUND_SOUND(g_gx_ufo_context.background_midi);

    g_gx_ufo_context.is_sound_close = 1;
}
#endif /* __MMI_GAME_MULTICHANNEL_SOUND__ */ /* /__MMI_GAME_MULTICHANNEL_SOUND__ */

    gdi_layer_free(g_gx_ufo_context.foreground);
    gdi_layer_multi_layer_disable();
}


/*****************************************************************************
 * FUNCTION
 *  mmi_gx_ufo_init_game
 * DESCRIPTION
 *  Game initilization
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_gx_ufo_init_game(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    /* init game */

    g_gx_ufo_context.up_key_pressed = FALSE;
    g_gx_ufo_context.down_key_pressed = FALSE;
    g_gx_ufo_context.left_key_pressed = FALSE;
    g_gx_ufo_context.right_key_pressed = FALSE;

    g_gx_ufo_context.tick = 0;
    g_gx_ufo_context.stage_ending_time = 0;
    g_gx_ufo_context.stage_count = 1;
    g_gx_ufo_context.game_grade = 0;
    g_gx_ufo_context.energy = MMI_GX_UFO_ENERGY_UNIT_COUNT;

    mmi_gx_ufo_init_background_list();
    g_gx_ufo_context.first_background_position_y = MMI_GX_UFO_LCD_HEIGHT - MMI_GX_UFO_TILE_HEIGHT;

#if defined(__MMI_MAINLCD_128X160__) || defined(__MMI_MAINLCD_128X128__)
    g_gx_ufo_context.fighter_position_x = 57;
#elif defined(__MMI_MAINLCD_176X220__)
    g_gx_ufo_context.fighter_position_x = 78;
#endif 
    g_gx_ufo_context.fighter_position_y = MMI_GX_UFO_LCD_HEIGHT - 20;
    g_gx_ufo_context.fighter_old_position_x = g_gx_ufo_context.fighter_position_x;
    g_gx_ufo_context.fighter_old_position_y = g_gx_ufo_context.fighter_position_y;
    g_gx_ufo_context.fighter_invincible = 0;
    g_gx_ufo_context.fighter_state = MMI_GX_UFO_NORMAL_STATE;

    g_gx_ufo_context.is_treasure_on = FALSE;
    g_gx_ufo_context.is_boss_on = FALSE;

    g_gx_ufo_context.enemy_pattern_number = 0;
    g_gx_ufo_context.enemy_model = &(g_gx_ufo_context.enemy_model_memory[0]);

    g_gx_ufo_context.fighter_weapon = MMI_GX_UFO_BULLET_1;
    mmi_gx_ufo_init_bullet_list();
    mmi_gx_ufo_init_enemy_list();
    mmi_gx_ufo_init_enemy_bullet_list();

    g_gx_ufo_context.boss_appearing_time = MMI_GX_UFO_STAGE_INTERVAL * 4 + 70;
}


/*****************************************************************************
 * FUNCTION
 *  mmi_gx_ufo_init_enemy_list
 * DESCRIPTION
 *  Initialization of the enemies
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_gx_ufo_init_enemy_list(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    U8 i;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    for (i = 0; i < MMI_GX_UFO_ENEMY_COUNT - 1; i++)
    {
        g_gx_ufo_context.enemy[i].next = &(g_gx_ufo_context.enemy[i + 1]);
    }

    for (i = 1; i < MMI_GX_UFO_ENEMY_COUNT; i++)
    {
        g_gx_ufo_context.enemy[i].previous = &(g_gx_ufo_context.enemy[i - 1]);
    }

    g_gx_ufo_context.first_enemy = NULL;
    g_gx_ufo_context.last_enemy = NULL;
    g_gx_ufo_context.first_empty_enemy_list = &(g_gx_ufo_context.enemy[0]);
    g_gx_ufo_context.last_empty_enemy_list = &(g_gx_ufo_context.enemy[MMI_GX_UFO_ENEMY_COUNT - 1]);
}


/*****************************************************************************
 * FUNCTION
 *  mmi_gx_ufo_init_enemy_bullet_list
 * DESCRIPTION
 *  Initialization of the bullet list of enemies
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_gx_ufo_init_enemy_bullet_list(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    U8 i;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    for (i = 0; i < MMI_GX_UFO_ENEMY_BULLET_COUNT - 1; i++)
    {
        g_gx_ufo_context.enemy_bullet[i].next = &(g_gx_ufo_context.enemy_bullet[i + 1]);
    }

    for (i = 1; i < MMI_GX_UFO_ENEMY_BULLET_COUNT; i++)
    {
        g_gx_ufo_context.enemy_bullet[i].previous = &(g_gx_ufo_context.enemy_bullet[i - 1]);
    }

    g_gx_ufo_context.first_enemy_bullet = NULL;
    g_gx_ufo_context.last_enemy_bullet = NULL;
    g_gx_ufo_context.first_empty_enemy_bullet_list = &(g_gx_ufo_context.enemy_bullet[0]);
    g_gx_ufo_context.last_empty_enemy_bullet_list = &(g_gx_ufo_context.enemy_bullet[MMI_GX_UFO_ENEMY_BULLET_COUNT - 1]);
}


/*****************************************************************************
 * FUNCTION
 *  mmi_gx_ufo_init_bullet_list
 * DESCRIPTION
 *  Initialization of the bullet list of the fighter
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_gx_ufo_init_bullet_list(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    U8 i;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    for (i = 0; i < MMI_GX_UFO_BULLET_COUNT - 1; i++)
    {
        g_gx_ufo_context.bullet[i].next = &(g_gx_ufo_context.bullet[i + 1]);
    }

    for (i = 1; i < MMI_GX_UFO_BULLET_COUNT; i++)
    {
        g_gx_ufo_context.bullet[i].previous = &(g_gx_ufo_context.bullet[i - 1]);
    }

    g_gx_ufo_context.first_bullet = NULL;
    g_gx_ufo_context.last_bullet = NULL;
    g_gx_ufo_context.first_empty_bullet_list = &(g_gx_ufo_context.bullet[0]);
    g_gx_ufo_context.last_empty_bullet_list = &(g_gx_ufo_context.bullet[MMI_GX_UFO_BULLET_COUNT - 1]);

    NEW_FIGHTER_BULLET();
}


/*****************************************************************************
 * FUNCTION
 *  mmi_gx_ufo_get_bullet_position_x
 * DESCRIPTION
 *  Initialization of bullet position in x direction
 * PARAMETERS
 *  type        [IN]        Bullet type
 * RETURNS
 *  x position of the bullet
 *****************************************************************************/
U8 mmi_gx_ufo_get_bullet_position_x(U8 type)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    if (type == MMI_GX_UFO_BULLET_1)
    {
        return g_gx_ufo_context.fighter_position_x + MMI_GX_UFO_ROLE_WIDTH / 2 - MMI_GX_UFO_BULLET_WIDTH / 2;
    }
    else if (type == MMI_GX_UFO_BULLET_2)
    {
        return g_gx_ufo_context.fighter_position_x + MMI_GX_UFO_ROLE_WIDTH / 2 - MMI_GX_UFO_BULLET_WIDTH;
    }
    else if (type == MMI_GX_UFO_BULLET_3)
    {
        return g_gx_ufo_context.fighter_position_x + MMI_GX_UFO_ROLE_WIDTH / 2 - 3 * MMI_GX_UFO_BULLET_WIDTH / 2;
    }

    return 0;
}


/*****************************************************************************
 * FUNCTION
 *  mmi_gx_ufo_get_bullet_position_y
 * DESCRIPTION
 *  Initialization of bullet position in y direction
 * PARAMETERS
 *  void
 * RETURNS
 *  y position of the bullet
 *****************************************************************************/
S16 mmi_gx_ufo_get_bullet_position_y(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    return g_gx_ufo_context.fighter_position_y - MMI_GX_UFO_BULLET_HEIGHT;
}


/*****************************************************************************
 * FUNCTION
 *  mmi_gx_ufo_init_background_list
 * DESCRIPTION
 *  Background image list initialization
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_gx_ufo_init_background_list(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    U8 i;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    g_gx_ufo_context.background_image_list[0].image_id = IMG_ID_GX_UFO_BACKGROUND_1;
    g_gx_ufo_context.first_background_image = &g_gx_ufo_context.background_image_list[0];

    for (i = 0; i < MMI_GX_UFO_BACKGROUND_LIST_NUMBER - 1; i++)
    {
        g_gx_ufo_context.background_image_list[i].next = &g_gx_ufo_context.background_image_list[i + 1];
        g_gx_ufo_context.background_image_list[i + 1].image_id = IMG_ID_GX_UFO_BACKGROUND_1 + i + 1;
    }

    g_gx_ufo_context.last_background_image =
        &g_gx_ufo_context.background_image_list[MMI_GX_UFO_BACKGROUND_LIST_NUMBER - 1];
}


/*****************************************************************************
 * FUNCTION
 *  mmi_gx_ufo_draw_background
 * DESCRIPTION
 *  Draw background
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_gx_ufo_draw_background(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    U8 i;
    S16 position_y;
    gx_ufo_background_struct *current_node;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    /* if the tile can not be seen at all */
    if (g_gx_ufo_context.first_background_position_y > MMI_GX_UFO_LCD_HEIGHT - 1)
    {
        g_gx_ufo_context.last_background_image->next = g_gx_ufo_context.first_background_image;
        g_gx_ufo_context.last_background_image = g_gx_ufo_context.first_background_image;
        g_gx_ufo_context.first_background_image = g_gx_ufo_context.first_background_image->next;
        g_gx_ufo_context.first_background_position_y = MMI_GX_UFO_LCD_HEIGHT - MMI_GX_UFO_TILE_HEIGHT;
    }

    gdi_layer_set_active(g_gx_ufo_context.background);
    gdi_layer_push_clip();
    gdi_layer_set_clip(0, MMI_GX_UFO_ORIGIN, MMI_GX_UFO_LCD_WIDTH - 1, MMI_GX_UFO_LCD_HEIGHT - 1);

    position_y = g_gx_ufo_context.first_background_position_y;
    current_node = g_gx_ufo_context.first_background_image;

    for (i = 0; i < MMI_GX_UFO_TILE_NUMBER; i++)
    {
        gdi_image_draw_id(0, position_y, current_node->image_id);
        current_node = current_node->next;
        position_y = position_y - MMI_GX_UFO_TILE_HEIGHT;
    }

    gdi_layer_pop_clip();
}


/*****************************************************************************
 * FUNCTION
 *  mmi_gx_ufo_framemove
 * DESCRIPTION
 *  Framemove - process the game logic
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_gx_ufo_framemove(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    gx_ufo_bullet_struct *i;
    gx_ufo_enemy_struct *enemy;
    gx_ufo_enemy_bullet_struct *bullet;
    S16 offset_x;
    S16 offset_y;
    S16 tmp;
    S16 enemy_width;
    S16 enemy_height;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    if (g_gx_ufo_context.is_boss_on != TRUE)
    {
        enemy_width = MMI_GX_UFO_ENEMY_WIDTH;
        enemy_height = MMI_GX_UFO_ENEMY_HEIGHT;
    }
    else
    {
        enemy_width = MMI_GX_UFO_BOSS_WIDTH;
        enemy_height = MMI_GX_UFO_BOSS_HEIGHT;
    }

    g_gx_ufo_context.audio_to_play = UFO_OFF;

    /* check if there should be a treasure for every 14 seconds */
    if ((g_gx_ufo_context.tick + 1) % 140 == 0)
    {
        g_gx_ufo_context.is_treasure_on = TRUE;
        GET_TREASURE_TYPE(g_gx_ufo_context.treasure_type);
        g_gx_ufo_context.treasure_position_x = rand() % (MMI_GX_UFO_LCD_WIDTH - MMI_GX_UFO_TREASURE_WIDTH);
        g_gx_ufo_context.treasure_position_y = -MMI_GX_UFO_ORIGIN;
        g_gx_ufo_context.treasure_old_position_x = g_gx_ufo_context.treasure_position_x;
        g_gx_ufo_context.treasure_old_position_y = g_gx_ufo_context.treasure_position_y;
    }

    /* update the position of the treasure */
    if (g_gx_ufo_context.is_treasure_on != FALSE)
    {
        g_gx_ufo_context.treasure_old_position_y = g_gx_ufo_context.treasure_position_y;
        g_gx_ufo_context.treasure_position_y = g_gx_ufo_context.treasure_position_y + MMI_GX_UFO_TREASURE_SPEED;

        /* if the treasure is going out of the screen, disable it */
        if (g_gx_ufo_context.treasure_position_y > MMI_GX_UFO_LCD_HEIGHT + 2 * MMI_GX_UFO_TREASURE_HEIGHT)
        {
            g_gx_ufo_context.is_treasure_on = FALSE;
        }
    }

    /* background image moving */
    if (g_gx_ufo_context.is_boss_on != TRUE)
    {
        g_gx_ufo_context.first_background_position_y =
            g_gx_ufo_context.first_background_position_y + MMI_GX_UFO_BACKGROUND_SPEED;
    }
    else
    {
    #if defined(__MMI_MAINLCD_128X160__) || defined(__MMI_MAINLCD_128X128__)
    #elif defined(__MMI_MAINLCD_176X220__)
        g_gx_ufo_context.first_background_position_y =
            g_gx_ufo_context.first_background_position_y + MMI_GX_UFO_BACKGROUND_SPEED + 2;
    #endif 
    }

    /* determine the position of the fighter */
    UPDATE_FIGHTER_POSITION();

    /* determine if the fighter takes the treasure */
    if (g_gx_ufo_context.is_treasure_on != FALSE &&
        (g_gx_ufo_context.fighter_state == MMI_GX_UFO_NORMAL_STATE ||
         g_gx_ufo_context.fighter_state == MMI_GX_UFO_HIT_STATE))
    {
        if ((g_gx_ufo_context.treasure_position_x >= g_gx_ufo_context.fighter_position_x &&
             g_gx_ufo_context.treasure_position_x < g_gx_ufo_context.fighter_position_x + MMI_GX_UFO_ROLE_WIDTH &&
             g_gx_ufo_context.treasure_position_y >= g_gx_ufo_context.fighter_position_y &&
             g_gx_ufo_context.treasure_position_y < g_gx_ufo_context.fighter_position_y + MMI_GX_UFO_ROLE_HEIGHT) ||
            (g_gx_ufo_context.treasure_position_x + MMI_GX_UFO_TREASURE_WIDTH - 1 >= g_gx_ufo_context.fighter_position_x
             && g_gx_ufo_context.treasure_position_x + MMI_GX_UFO_TREASURE_WIDTH - 1 <
             g_gx_ufo_context.fighter_position_x + MMI_GX_UFO_ROLE_WIDTH &&
             g_gx_ufo_context.treasure_position_y >= g_gx_ufo_context.fighter_position_y &&
             g_gx_ufo_context.treasure_position_y < g_gx_ufo_context.fighter_position_y + MMI_GX_UFO_ROLE_HEIGHT) ||
            (g_gx_ufo_context.treasure_position_x >= g_gx_ufo_context.fighter_position_x &&
             g_gx_ufo_context.treasure_position_x < g_gx_ufo_context.fighter_position_x + MMI_GX_UFO_ROLE_WIDTH &&
             g_gx_ufo_context.treasure_position_y + MMI_GX_UFO_TREASURE_HEIGHT - 1 >=
             g_gx_ufo_context.fighter_position_y &&
             g_gx_ufo_context.treasure_position_y + MMI_GX_UFO_TREASURE_HEIGHT - 1 <
             g_gx_ufo_context.fighter_position_y + MMI_GX_UFO_ROLE_HEIGHT) ||
            (g_gx_ufo_context.treasure_position_x + MMI_GX_UFO_TREASURE_WIDTH - 1 >= g_gx_ufo_context.fighter_position_x
             && g_gx_ufo_context.treasure_position_x + MMI_GX_UFO_TREASURE_WIDTH - 1 <
             g_gx_ufo_context.fighter_position_x + MMI_GX_UFO_ROLE_WIDTH &&
             g_gx_ufo_context.treasure_position_y + MMI_GX_UFO_TREASURE_HEIGHT - 1 >=
             g_gx_ufo_context.fighter_position_y &&
             g_gx_ufo_context.treasure_position_y + MMI_GX_UFO_TREASURE_HEIGHT - 1 <
             g_gx_ufo_context.fighter_position_y + MMI_GX_UFO_ROLE_HEIGHT))
        {

            g_gx_ufo_context.audio_to_play = UFO_EAT;

            g_gx_ufo_context.is_treasure_on = FALSE;
            /* erase the previous image of this treasure */
            gdi_layer_set_active(g_gx_ufo_context.foreground);
            gdi_layer_push_clip();
            gdi_layer_set_clip(0, MMI_GX_UFO_ORIGIN, MMI_GX_UFO_LCD_WIDTH - 1, MMI_GX_UFO_LCD_HEIGHT - 1);
            gdi_draw_solid_rect(
                g_gx_ufo_context.treasure_old_position_x,
                g_gx_ufo_context.treasure_old_position_y,
                g_gx_ufo_context.treasure_old_position_x + MMI_GX_UFO_TREASURE_WIDTH - 1,
                g_gx_ufo_context.treasure_old_position_y + MMI_GX_UFO_TREASURE_HEIGHT - 1,
                MMI_GX_UFO_TRANSPARENT_COLOR);
            gdi_layer_pop_clip();

            /* show the effect of this treasure */
            /* if it's a energy filling treasure */
            if (g_gx_ufo_context.treasure_type == MMI_GX_UFO_ENERGY_TREASURE)
            {
                g_gx_ufo_context.energy = g_gx_ufo_context.energy + 1;
                /* the maximum of the fighter energy is MMI_GX_UFO_ENERGY_UNIT_COUNT */
                if (g_gx_ufo_context.energy > MMI_GX_UFO_ENERGY_UNIT_COUNT)
                {
                    g_gx_ufo_context.energy = MMI_GX_UFO_ENERGY_UNIT_COUNT;
                }
                mmi_gx_ufo_draw_energy();
            }
            /* if it's a weapon treasure */
            else if (g_gx_ufo_context.treasure_type == MMI_GX_UFO_WEAPON_TREASURE)
            {
                /* increase the weapon */
                g_gx_ufo_context.fighter_weapon = g_gx_ufo_context.fighter_weapon + 1;
                /* the weapon is in BULLET_3 at most */
                if (g_gx_ufo_context.fighter_weapon > MMI_GX_UFO_BULLET_3)
                {
                    g_gx_ufo_context.fighter_weapon = MMI_GX_UFO_BULLET_3;
                }
            }
            /* if it's a bomb treasure */
            else if (g_gx_ufo_context.treasure_type == MMI_GX_UFO_BOMB_TREASURE)
            {
                /* make all enemy's life become 0 */
                for (enemy = g_gx_ufo_context.first_enemy;
                     enemy != NULL && enemy != g_gx_ufo_context.first_empty_enemy_list; enemy = enemy->next)
                {

                    if (g_gx_ufo_context.audio_to_play < UFO_EXPLODING)
                    {
                        g_gx_ufo_context.audio_to_play = UFO_EXPLODING;
                    }

                    enemy->life = 0;
                    enemy->state = MMI_GX_UFO_HIT_STATE;
                    /* increase the score */
                    g_gx_ufo_context.game_grade = g_gx_ufo_context.game_grade + MMI_GX_UFO_ENEMY_SCORE;
                }
            }
            /* if it's a invincible treasure */
            else if (g_gx_ufo_context.treasure_type == MMI_GX_UFO_INVINCIBLE_TREASURE)
            {
                g_gx_ufo_context.fighter_state = MMI_GX_UFO_HIT_STATE;
                g_gx_ufo_context.is_invisible = TRUE;
                g_gx_ufo_context.fighter_invincible = MMI_GX_UFO_INVINCIBLE_INTERVAL;
            }
        }
    }

    /* update positions of bullets */
    for (i = g_gx_ufo_context.first_bullet; i != NULL && i != g_gx_ufo_context.first_empty_bullet_list; i = i->next)
    {
        i->old_y = i->y;
        i->y = i->y - MMI_GX_UFO_BULLET_SPEED;
        /* if the bullet is going out of the boundary, remove it back to the empty bullet list */
        if (i->old_y + MMI_GX_UFO_BULLET_HEIGHT < MMI_GX_UFO_ORIGIN - 2 * MMI_GX_UFO_BULLET_HEIGHT)
        {
            REMOVE_BULLET_FROM_LIST(i);
        }
    }

    /* update positions of bullets of enemies */
    for (bullet = g_gx_ufo_context.first_enemy_bullet;
         bullet != NULL && bullet != g_gx_ufo_context.first_empty_enemy_bullet_list; bullet = bullet->next)
    {
        bullet->old_x = bullet->x;
        bullet->old_y = bullet->y;
        bullet->x = bullet->x + bullet->vector_x;
        bullet->y = bullet->y + bullet->vector_y;

        /* if the enemy bullet is going out of the boundary, remove it back to the empty list */
        if (bullet->old_x < -MMI_GX_UFO_ENEMY_BULLET_WIDTH || bullet->old_x > MMI_GX_UFO_LCD_WIDTH ||
            bullet->old_y < MMI_GX_UFO_ORIGIN - MMI_GX_UFO_ENEMY_BULLET_HEIGHT || bullet->old_y > MMI_GX_UFO_LCD_HEIGHT)
        {
            REMOVE_ENEMY_BULLET_FROM_LIST(bullet);
        }

        /* check if the bullet hit the fighter */
        if ((g_gx_ufo_context.fighter_state == MMI_GX_UFO_NORMAL_STATE) && ((bullet->x >=
                                                                             g_gx_ufo_context.fighter_position_x &&
                                                                             bullet->x <
                                                                             g_gx_ufo_context.fighter_position_x +
                                                                             MMI_GX_UFO_ROLE_WIDTH &&
                                                                             bullet->y >=
                                                                             g_gx_ufo_context.fighter_position_y &&
                                                                             bullet->y <
                                                                             g_gx_ufo_context.fighter_position_y +
                                                                             MMI_GX_UFO_ROLE_HEIGHT) ||
                                                                            (bullet->x + MMI_GX_UFO_ENEMY_BULLET_WIDTH -
                                                                             1 >= g_gx_ufo_context.fighter_position_x &&
                                                                             bullet->x + MMI_GX_UFO_ENEMY_BULLET_WIDTH -
                                                                             1 <
                                                                             g_gx_ufo_context.fighter_position_x +
                                                                             MMI_GX_UFO_ROLE_WIDTH &&
                                                                             bullet->y >=
                                                                             g_gx_ufo_context.fighter_position_y &&
                                                                             bullet->y <
                                                                             g_gx_ufo_context.fighter_position_y +
                                                                             MMI_GX_UFO_ROLE_HEIGHT) ||
                                                                            (bullet->x >=
                                                                             g_gx_ufo_context.fighter_position_x &&
                                                                             bullet->x <
                                                                             g_gx_ufo_context.fighter_position_x +
                                                                             MMI_GX_UFO_ROLE_WIDTH &&
                                                                             bullet->y +
                                                                             MMI_GX_UFO_ENEMY_BULLET_HEIGHT - 1 >=
                                                                             g_gx_ufo_context.fighter_position_y &&
                                                                             bullet->y +
                                                                             MMI_GX_UFO_ENEMY_BULLET_HEIGHT - 1 <
                                                                             g_gx_ufo_context.fighter_position_y +
                                                                             MMI_GX_UFO_ROLE_HEIGHT) ||
                                                                            (bullet->x + MMI_GX_UFO_ENEMY_BULLET_WIDTH -
                                                                             1 >= g_gx_ufo_context.fighter_position_x &&
                                                                             bullet->x + MMI_GX_UFO_ENEMY_BULLET_WIDTH -
                                                                             1 <
                                                                             g_gx_ufo_context.fighter_position_x +
                                                                             MMI_GX_UFO_ROLE_WIDTH &&
                                                                             bullet->y +
                                                                             MMI_GX_UFO_ENEMY_BULLET_HEIGHT - 1 >=
                                                                             g_gx_ufo_context.fighter_position_y &&
                                                                             bullet->y +
                                                                             MMI_GX_UFO_ENEMY_BULLET_HEIGHT - 1 <
                                                                             g_gx_ufo_context.fighter_position_y +
                                                                             MMI_GX_UFO_ROLE_HEIGHT)))
        {
            GFX_PLAY_VIBRATION();
            g_gx_ufo_context.energy = g_gx_ufo_context.energy - 1;
            /* before remove the bullet from the list, erase its previous image first */
            gdi_layer_set_active(g_gx_ufo_context.foreground);
            gdi_layer_push_clip();
            gdi_layer_set_clip(0, MMI_GX_UFO_ORIGIN, MMI_GX_UFO_LCD_WIDTH - 1, MMI_GX_UFO_LCD_HEIGHT - 1);
            gdi_draw_solid_rect(
                bullet->old_x,
                bullet->old_y,
                bullet->old_x + MMI_GX_UFO_ENEMY_BULLET_WIDTH - 1,
                bullet->old_y + MMI_GX_UFO_ENEMY_BULLET_HEIGHT - 1,
                MMI_GX_UFO_TRANSPARENT_COLOR);
            gdi_layer_pop_clip();
            REMOVE_ENEMY_BULLET_FROM_LIST(bullet);
            /* when the energy > 0, the fighter is still alive */
            if (g_gx_ufo_context.energy != 0)
            {
                if (g_gx_ufo_context.audio_to_play < UFO_HIT)
                {
                    g_gx_ufo_context.audio_to_play = UFO_HIT;
                }

                g_gx_ufo_context.fighter_state = MMI_GX_UFO_HIT_STATE;
                g_gx_ufo_context.fighter_invincible = MMI_GX_UFO_INVINCIBLE_INTERVAL;
            }
            /* when the energy is 0, the fighter is going to exploding */
            else
            {
                g_gx_ufo_context.fighter_state = MMI_GX_UFO_EXPLODING_STATE_1;

                if (g_gx_ufo_context.audio_to_play < UFO_EXPLODING)
                {
                    g_gx_ufo_context.audio_to_play = UFO_EXPLODING;
                }
            }
        }
    }

    /* update positions of enemies */
    for (enemy = g_gx_ufo_context.first_enemy; enemy != NULL && enemy != g_gx_ufo_context.first_empty_enemy_list;
         enemy = enemy->next)
    {
        enemy->old_x = enemy->x;
        enemy->old_y = enemy->y;
        mmi_gx_ufo_update_enemy_vector(enemy);
        enemy->x = enemy->x + enemy->vector_x;
        enemy->y = enemy->y + enemy->vector_y;
        /* if the enemy is going out of the boundary, remove it back to the empty list */
        if (enemy->old_x < -enemy_width || enemy->old_x > MMI_GX_UFO_LCD_WIDTH ||
            enemy->old_y < MMI_GX_UFO_ORIGIN - enemy_height /* 0 */  || enemy->old_y > MMI_GX_UFO_LCD_HEIGHT)
        {
            /* if it's a normal enemy */
            if (g_gx_ufo_context.is_boss_on != TRUE)
            {
                REMOVE_ENEMY_FROM_LIST(enemy);
            }
            /* when the enemy is a boss, reset it's move type instead of removing it from the list */
            else
            {
                enemy->move_type = rand() % MMI_GX_UFO_MOVE_TYPE_COUNT;
                if (g_gx_ufo_context.last_enemy->move_type == MMI_GX_UFO_MOVE_TYPE_4)
                {
                    g_gx_ufo_context.last_enemy->vector_x = 4;
                }
                else if (g_gx_ufo_context.last_enemy->move_type == MMI_GX_UFO_MOVE_TYPE_5)
                {
                    g_gx_ufo_context.last_enemy->vector_x = -4;
                }
                g_gx_ufo_context.last_enemy->starting_time = g_gx_ufo_context.tick;
                g_gx_ufo_context.last_enemy->x = mmi_gx_ufo_get_enemy_position_x(g_gx_ufo_context.last_enemy->move_type);
                g_gx_ufo_context.last_enemy->y = 0;
                g_gx_ufo_context.last_enemy->state = MMI_GX_UFO_NORMAL_STATE;
            }
            continue;
        }
        /* when the enemy is shot by the bullet(s) of the fighter, it will get hurts or explode */
        for (i = g_gx_ufo_context.first_bullet;
             enemy->state == MMI_GX_UFO_NORMAL_STATE && i != NULL && i != g_gx_ufo_context.first_empty_bullet_list;
             i = i->next)
        {
            if ((i->x >= enemy->x && i->x < enemy->x + enemy_width && i->y >= enemy->y &&
                 i->y < enemy->y + enemy_height) || (i->x + i->type * MMI_GX_UFO_BULLET_WIDTH - 1 >= enemy->x &&
                                                     i->x + i->type * MMI_GX_UFO_BULLET_WIDTH - 1 <
                                                     enemy->x + enemy_width && i->y >= enemy->y &&
                                                     i->y < enemy->y + enemy_height) || (i->x >= enemy->x &&
                                                                                         i->x < enemy->x + enemy_width
                                                                                         && i->y +
                                                                                         MMI_GX_UFO_BULLET_HEIGHT - 1 >=
                                                                                         enemy->y &&
                                                                                         i->y +
                                                                                         MMI_GX_UFO_BULLET_HEIGHT - 1 <
                                                                                         enemy->y + enemy_height) ||
                (i->x + i->type * MMI_GX_UFO_BULLET_WIDTH - 1 >= enemy->x &&
                 i->x + i->type * MMI_GX_UFO_BULLET_WIDTH - 1 < enemy->x + enemy_width &&
                 i->y + MMI_GX_UFO_BULLET_HEIGHT - 1 >= enemy->y &&
                 i->y + MMI_GX_UFO_BULLET_HEIGHT - 1 < enemy->y + enemy_height))
            {
                enemy->life = enemy->life - i->type;
                enemy->state = MMI_GX_UFO_HIT_STATE;
                /* before remove the bullet from the list, erase its previous image first */
                gdi_layer_set_active(g_gx_ufo_context.foreground);
                gdi_layer_push_clip();
                gdi_layer_set_clip(0, MMI_GX_UFO_ORIGIN, MMI_GX_UFO_LCD_WIDTH - 1, MMI_GX_UFO_LCD_HEIGHT - 1);
                gdi_draw_solid_rect(
                    i->old_x,
                    i->old_y,
                    i->old_x + i->type * MMI_GX_UFO_BULLET_WIDTH - 1,
                    i->old_y + MMI_GX_UFO_BULLET_HEIGHT - 1,
                    MMI_GX_UFO_TRANSPARENT_COLOR);
                gdi_layer_pop_clip();
                REMOVE_BULLET_FROM_LIST(i);
                /* increase the score for killing one enemy */
                if (enemy->life <= 0)
                {
                    if (g_gx_ufo_context.audio_to_play < UFO_EXPLODING)
                    {
                        g_gx_ufo_context.audio_to_play = UFO_EXPLODING;
                    }

                    if (g_gx_ufo_context.is_boss_on != TRUE)
                    {
                        g_gx_ufo_context.game_grade = g_gx_ufo_context.game_grade + MMI_GX_UFO_ENEMY_SCORE;
                    }
                    /* the score of the boss is 15 times more than a normal enemy */
                    else
                    {
                        g_gx_ufo_context.game_grade = g_gx_ufo_context.game_grade + 15 * MMI_GX_UFO_ENEMY_SCORE;
                    }
                }
                else
                {
                    if (g_gx_ufo_context.audio_to_play < UFO_HIT)
                    {
                        g_gx_ufo_context.audio_to_play = UFO_HIT;
                    }
                }
            }
        }

        /* check if the fighter touched the enemy */
        if (((g_gx_ufo_context.is_boss_on != TRUE) &&
             ((g_gx_ufo_context.fighter_state == MMI_GX_UFO_NORMAL_STATE) &&
              ((enemy->x >= g_gx_ufo_context.fighter_position_x &&
                enemy->x < g_gx_ufo_context.fighter_position_x + MMI_GX_UFO_ROLE_WIDTH &&
                enemy->y >= g_gx_ufo_context.fighter_position_y &&
                enemy->y < g_gx_ufo_context.fighter_position_y + MMI_GX_UFO_ROLE_HEIGHT) ||
               (enemy->x + MMI_GX_UFO_ENEMY_WIDTH - 1 >= g_gx_ufo_context.fighter_position_x &&
                enemy->x + MMI_GX_UFO_ENEMY_WIDTH - 1 < g_gx_ufo_context.fighter_position_x + MMI_GX_UFO_ROLE_WIDTH &&
                enemy->y >= g_gx_ufo_context.fighter_position_y &&
                enemy->y < g_gx_ufo_context.fighter_position_y + MMI_GX_UFO_ROLE_HEIGHT) ||
               (enemy->x >= g_gx_ufo_context.fighter_position_x &&
                enemy->x < g_gx_ufo_context.fighter_position_x + MMI_GX_UFO_ROLE_WIDTH &&
                enemy->y + MMI_GX_UFO_ENEMY_HEIGHT - 1 >= g_gx_ufo_context.fighter_position_y &&
                enemy->y + MMI_GX_UFO_ENEMY_HEIGHT - 1 < g_gx_ufo_context.fighter_position_y + MMI_GX_UFO_ROLE_HEIGHT)
               || (enemy->x + MMI_GX_UFO_ENEMY_WIDTH - 1 >= g_gx_ufo_context.fighter_position_x &&
                   enemy->x + MMI_GX_UFO_ENEMY_WIDTH - 1 < g_gx_ufo_context.fighter_position_x + MMI_GX_UFO_ROLE_WIDTH
                   && enemy->y + MMI_GX_UFO_ENEMY_HEIGHT - 1 >= g_gx_ufo_context.fighter_position_y &&
                   enemy->y + MMI_GX_UFO_ENEMY_HEIGHT - 1 <
                   g_gx_ufo_context.fighter_position_y + MMI_GX_UFO_ROLE_HEIGHT)))) ||
            ((g_gx_ufo_context.is_boss_on != FALSE) &&
             ((g_gx_ufo_context.fighter_state == MMI_GX_UFO_NORMAL_STATE) &&
              ((g_gx_ufo_context.fighter_position_x >= enemy->x &&
                g_gx_ufo_context.fighter_position_x < enemy->x + enemy_width &&
                g_gx_ufo_context.fighter_position_y >= enemy->y &&
                g_gx_ufo_context.fighter_position_y < enemy->y + enemy_height) ||
               (g_gx_ufo_context.fighter_position_x + MMI_GX_UFO_ROLE_WIDTH - 1 >= enemy->x &&
                g_gx_ufo_context.fighter_position_x + MMI_GX_UFO_ROLE_WIDTH - 1 < enemy->x + enemy_width &&
                g_gx_ufo_context.fighter_position_y >= enemy->y &&
                g_gx_ufo_context.fighter_position_y < enemy->y + enemy_height) ||
               (g_gx_ufo_context.fighter_position_x >= enemy->x &&
                g_gx_ufo_context.fighter_position_x < enemy->x + enemy_width &&
                g_gx_ufo_context.fighter_position_y + MMI_GX_UFO_ROLE_HEIGHT - 1 >= enemy->y &&
                g_gx_ufo_context.fighter_position_y + MMI_GX_UFO_ROLE_HEIGHT - 1 < enemy->y + enemy_height) ||
               (g_gx_ufo_context.fighter_position_x + MMI_GX_UFO_ROLE_WIDTH - 1 >= enemy->x &&
                g_gx_ufo_context.fighter_position_x + MMI_GX_UFO_ROLE_WIDTH - 1 < enemy->x + enemy_width &&
                g_gx_ufo_context.fighter_position_y + MMI_GX_UFO_ROLE_HEIGHT - 1 >= enemy->y &&
                g_gx_ufo_context.fighter_position_y + MMI_GX_UFO_ROLE_HEIGHT - 1 < enemy->y + enemy_height)))))
        {
            if (g_gx_ufo_context.audio_to_play < UFO_HIT)
            {
                g_gx_ufo_context.audio_to_play = UFO_HIT;
            }

            GFX_PLAY_VIBRATION();
            g_gx_ufo_context.energy = g_gx_ufo_context.energy - 1;
            /* when the energy > 0, the fighter is still alive */
            if (g_gx_ufo_context.energy != 0)
            {
                g_gx_ufo_context.fighter_state = MMI_GX_UFO_HIT_STATE;
                g_gx_ufo_context.fighter_invincible = MMI_GX_UFO_INVINCIBLE_INTERVAL;
            }
            /* when the energy is 0, the fighter is going to exploding */
            else
            {
                if (g_gx_ufo_context.audio_to_play < UFO_EXPLODING)
                {
                    g_gx_ufo_context.audio_to_play = UFO_EXPLODING;
                }

                g_gx_ufo_context.fighter_state = MMI_GX_UFO_EXPLODING_STATE_1;
            }
        }

        /* if the enemy is exploding, it will not shoot */
        if (enemy->state != MMI_GX_UFO_NORMAL_STATE)
        {
            continue;
        }
        /* if the attack type of the enemy is in type 1, it will not shoot */
        if (enemy->attack_type == MMI_GX_UFO_ATTACK_TYPE_1)
        {
            continue;
        }

        /* set up the data of bullets of the enemy */
        /* the number of bullets one enemy can shoot is at most 3 */
        if (g_gx_ufo_context.is_boss_on != TRUE &&
            ((g_gx_ufo_context.tick - enemy->starting_time) % (20 + (rand() % 3)) == 0))
        {
            /* new() a new bullt of enemy */
            NEW_ENEMY_BULLET();
        }
        /* when the enemy is the boss, it will shoot for every 0.4~0.6 seconds */
        else if (g_gx_ufo_context.is_boss_on != FALSE &&
                 ((g_gx_ufo_context.tick - enemy->starting_time) % (4 + (rand() % 3)) == 0))
        {
            NEW_ENEMY_BULLET();
        }
    }

    /* new() a new bullet for every MMI_GX_UFO_BULLET_INTERVAL */
    if ((g_gx_ufo_context.tick + 1) % MMI_GX_UFO_BULLET_INTERVAL == 0 &&
        (g_gx_ufo_context.fighter_state == MMI_GX_UFO_NORMAL_STATE ||
         g_gx_ufo_context.fighter_state == MMI_GX_UFO_HIT_STATE))
    {
        NEW_FIGHTER_BULLET();
        if (g_gx_ufo_context.audio_to_play < UFO_SHOOT)
        {
            g_gx_ufo_context.audio_to_play = UFO_SHOOT;
        }
    }

    /* new() a new enemy for every MMI_GX_UFO_ENEMY_INTERVAL (for the first 120 seconds, all enemies are normal enemies) */
    if ((g_gx_ufo_context.tick + 1) % MMI_GX_UFO_ENEMY_INTERVAL == 0 &&
        (g_gx_ufo_context.tick < MMI_GX_UFO_STAGE_INTERVAL * 4))
    {
        NEW_ENEMY();
    }
    /* after 127 seconds, the boss appears */
    else if ((g_gx_ufo_context.tick > g_gx_ufo_context.boss_appearing_time) && (g_gx_ufo_context.is_boss_on != TRUE) &&
             (g_gx_ufo_context.tick < g_gx_ufo_context.boss_appearing_time + 2))
    {
        /* make sure that all enemies are out of screen */
        if (g_gx_ufo_context.first_enemy != NULL &&
            g_gx_ufo_context.first_enemy != g_gx_ufo_context.first_empty_enemy_list)
        {
            /* or the appearing of the boss will be delayed for 0.1 sec */
            g_gx_ufo_context.boss_appearing_time = g_gx_ufo_context.boss_appearing_time + 1;
        }
        /* when there are no enemies, the boss is appearing */
        else
        {
            g_gx_ufo_context.is_boss_on = TRUE;
            NEW_ENEMY();
        }
    }

#ifdef __MMI_GAME_MULTICHANNEL_SOUND__
if (g_gx_ufo_context.is_gameover == FALSE && g_gx_ufo_context.is_sound_close == 0)
{
    GFX_STOP_SOUND_EFFECTS_MIDI(g_gx_ufo_context.eat_midi);
    GFX_STOP_MULTICHANNEL_WAV(g_gx_ufo_context.hit_midi);
    GFX_STOP_MULTICHANNEL_WAV(g_gx_ufo_context.explode_wav);
    GFX_STOP_MULTICHANNEL_WAV(g_gx_ufo_context.shoot_wav);

    switch (g_gx_ufo_context.audio_to_play)
    {
        case UFO_HIT:
            GFX_PLAY_MULTICHANNEL_WAV(g_gx_ufo_context.hit_midi);
            break;
        case UFO_EXPLODING:
            GFX_PLAY_MULTICHANNEL_WAV(g_gx_ufo_context.explode_wav);
            break;
        case UFO_SHOOT:
            GFX_PLAY_MULTICHANNEL_WAV(g_gx_ufo_context.shoot_wav);
            break;
        case UFO_EAT:
            GFX_PLAY_SOUND_EFFECTS_MIDI(g_gx_ufo_context.eat_midi);
            break;
    }
}
#else /* __MMI_GAME_MULTICHANNEL_SOUND__ */ 
    switch (g_gx_ufo_context.audio_to_play)
    {
        case UFO_HIT:
            GFX_PLAY_AUDIO_DVI(UfoHit_dvi, UFOHIT_DVI, DEVICE_AUDIO_PLAY_ONCE);
            break;
        case UFO_EXPLODING:
            GFX_PLAY_AUDIO_DVI(UfoExplode_dvi, UFOEXPLODE_DVI, DEVICE_AUDIO_PLAY_ONCE);
            break;
        case UFO_SHOOT:
            GFX_PLAY_AUDIO_DVI(UfoShoot_dvi, UFOSHOOT_DVI, DEVICE_AUDIO_PLAY_ONCE);
            break;
        case UFO_EAT:
            GFX_PLAY_AUDIO_DVI(UfoEat_dvi, UFOEAT_DVI, DEVICE_AUDIO_PLAY_ONCE);
            break;
    }
#endif /* __MMI_GAME_MULTICHANNEL_SOUND__ */ 


}


/*****************************************************************************
 * FUNCTION
 *  mmi_gx_ufo_render
 * DESCRIPTION
 *  Render the game images
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_gx_ufo_render(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    gx_ufo_bullet_struct *bullet;
    gx_ufo_enemy_struct *enemy;
    gx_ufo_enemy_bullet_struct *enemy_bullet;
    S16 i;
    MMI_ID_TYPE image_type = IMG_ID_GX_UFO_ENERGY_FILL_1;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    /* avoid redrawing the screen */
    if (g_gx_ufo_context.is_gameover != FALSE)
    {
        return;
    }

    /* draw background image (on background layer) */
    mmi_gx_ufo_draw_background();

    gdi_layer_set_active(g_gx_ufo_context.foreground);
    gdi_layer_push_clip();
    gdi_layer_set_clip(0, MMI_GX_UFO_ORIGIN, MMI_GX_UFO_LCD_WIDTH - 1, MMI_GX_UFO_LCD_HEIGHT - 1);

    /* erase previous treasure if there is one */
    if (g_gx_ufo_context.is_treasure_on != FALSE)
    {
        gdi_draw_solid_rect(
            g_gx_ufo_context.treasure_old_position_x,
            g_gx_ufo_context.treasure_old_position_y,
            g_gx_ufo_context.treasure_old_position_x + MMI_GX_UFO_TREASURE_WIDTH - 1,
            g_gx_ufo_context.treasure_old_position_y + MMI_GX_UFO_TREASURE_HEIGHT - 1,
            MMI_GX_UFO_TRANSPARENT_COLOR);
    }
    /* erase previous enemies */
    for (enemy = g_gx_ufo_context.first_enemy; enemy != NULL && enemy != g_gx_ufo_context.first_empty_enemy_list;
         enemy = enemy->next)
    {
        if (g_gx_ufo_context.is_boss_on != TRUE)
        {
            gdi_draw_solid_rect(
                enemy->old_x,
                enemy->old_y,
                enemy->old_x + MMI_GX_UFO_ENEMY_WIDTH - 1,
                enemy->old_y + MMI_GX_UFO_ENEMY_HEIGHT - 1,
                MMI_GX_UFO_TRANSPARENT_COLOR);
        }
        else
        {
            gdi_draw_solid_rect(
                enemy->old_x,
                enemy->old_y,
                enemy->old_x + MMI_GX_UFO_BOSS_WIDTH - 1,
                enemy->old_y + MMI_GX_UFO_BOSS_HEIGHT - 1,
                MMI_GX_UFO_TRANSPARENT_COLOR);
        }
    }
    /* earse previous enemy bullets */
    for (enemy_bullet = g_gx_ufo_context.first_enemy_bullet;
         enemy_bullet != NULL && enemy_bullet != g_gx_ufo_context.first_empty_enemy_bullet_list;
         enemy_bullet = enemy_bullet->next)
    {
        gdi_draw_solid_rect(
            enemy_bullet->old_x,
            enemy_bullet->old_y,
            enemy_bullet->old_x + MMI_GX_UFO_ENEMY_BULLET_WIDTH - 1,
            enemy_bullet->old_y + MMI_GX_UFO_ENEMY_BULLET_HEIGHT - 1,
            MMI_GX_UFO_TRANSPARENT_COLOR);
    }
    /* erase the previous image of the fighter */
    gdi_draw_solid_rect(
        g_gx_ufo_context.fighter_old_position_x,
        g_gx_ufo_context.fighter_old_position_y,
        g_gx_ufo_context.fighter_old_position_x + MMI_GX_UFO_ROLE_WIDTH - 1,
        g_gx_ufo_context.fighter_old_position_y + MMI_GX_UFO_ROLE_HEIGHT - 1,
        MMI_GX_UFO_TRANSPARENT_COLOR);
    /* erase previous bullets */
    for (bullet = g_gx_ufo_context.first_bullet; bullet != NULL && bullet != g_gx_ufo_context.first_empty_bullet_list;
         bullet = bullet->next)
    {
        gdi_draw_solid_rect(
            bullet->old_x,
            bullet->old_y,
            bullet->old_x + (bullet->type - 1) * MMI_GX_UFO_BULLET_WIDTH + MMI_GX_UFO_BULLET_WIDTH - 1,
            bullet->old_y + MMI_GX_UFO_BULLET_HEIGHT - 1,
            MMI_GX_UFO_TRANSPARENT_COLOR);

    }

    /* draw the treasure if there is one */
    if (g_gx_ufo_context.is_treasure_on != FALSE)
    {
        /* determine the type of the image */
        if (g_gx_ufo_context.treasure_type == MMI_GX_UFO_ENERGY_TREASURE)
        {
            image_type = IMG_ID_GX_UFO_ENERGY_FILL_1;
        }
        else if (g_gx_ufo_context.treasure_type == MMI_GX_UFO_WEAPON_TREASURE)
        {
            image_type = IMG_ID_GX_UFO_WEAPON_1;
        }
        else if (g_gx_ufo_context.treasure_type == MMI_GX_UFO_BOMB_TREASURE)
        {
            image_type = IMG_ID_GX_UFO_BOMB_1;
        }
        else if (g_gx_ufo_context.treasure_type == MMI_GX_UFO_INVINCIBLE_TREASURE)
        {
            image_type = IMG_ID_GX_UFO_INVINCIBLE_1;
        }

        gdi_image_draw_id(
            g_gx_ufo_context.treasure_position_x,
            g_gx_ufo_context.treasure_position_y,
            (U16) (image_type + g_gx_ufo_context.tick % 2));
    }
    /* draw enemies */
    for (enemy = g_gx_ufo_context.first_enemy; enemy != NULL && enemy != g_gx_ufo_context.first_empty_enemy_list;
         enemy = enemy->next)
    {
        if (enemy->state == MMI_GX_UFO_NORMAL_STATE)
        {
            gdi_image_draw_id(enemy->x, enemy->y, (U16) (IMG_ID_GX_UFO_ENEMY_1 + enemy->image_offset));
        }
        /* the enemy is shot or exploding */
        else
        {
            /* the enemy is simply shot */
            if (enemy->life > 0)
            {
                gdi_image_draw_id(enemy->x, enemy->y, (U16) (IMG_ID_GX_UFO_ENEMY_1_HIT + enemy->image_offset));
                enemy->state = MMI_GX_UFO_NORMAL_STATE;
            }
            /* it is exploding */
            else
            {
                /* exploding frame 1 */
                if (enemy->state == MMI_GX_UFO_HIT_STATE)
                {
                    gdi_image_draw_id(enemy->x, enemy->y, IMG_ID_GX_UFO_FLAME_1);
                    enemy->state = MMI_GX_UFO_EXPLODING_STATE_1;
                    mmi_gx_ufo_draw_score();
                }
                /* exploding frame 2 */
                else if (enemy->state == MMI_GX_UFO_EXPLODING_STATE_1)
                {
                    gdi_image_draw_id(enemy->x, enemy->y, IMG_ID_GX_UFO_FLAME_2);
                    enemy->state = MMI_GX_UFO_EXPLODING_STATE_2;
                }
                /* exploding frame 3 */
                else if (enemy->state == MMI_GX_UFO_EXPLODING_STATE_2)
                {
                    gdi_image_draw_id(enemy->x, enemy->y, IMG_ID_GX_UFO_FLAME_3);
                    enemy->state = MMI_GX_UFO_EXPLODING_STATE_3;
                }
                /* remove the enemy from list */
                else if (enemy->state == MMI_GX_UFO_EXPLODING_STATE_3)
                {
                    REMOVE_ENEMY_FROM_LIST(enemy);
                    /* after the boss is killed, return to the normal stage */
                    if (g_gx_ufo_context.is_boss_on != FALSE)
                    {
                        g_gx_ufo_context.is_boss_on = FALSE;
                        g_gx_ufo_context.stage_ending_time = g_gx_ufo_context.tick;
                    }
                }
            }
        }
    }
    /* draw enemy bullets */
    for (enemy_bullet = g_gx_ufo_context.first_enemy_bullet;
         enemy_bullet != NULL && enemy_bullet != g_gx_ufo_context.first_empty_enemy_bullet_list;
         enemy_bullet = enemy_bullet->next)
    {
        gdi_image_draw_id(
            enemy_bullet->x,
            enemy_bullet->y,
            (U16) (IMG_ID_GX_UFO_ENEMY_BULLET_1 + enemy_bullet->image_offset));
    }
    /* draw the fighter */
    /* in normal state */
    if (g_gx_ufo_context.fighter_state == MMI_GX_UFO_NORMAL_STATE)
    {
        gdi_image_draw_id(g_gx_ufo_context.fighter_position_x, g_gx_ufo_context.fighter_position_y, IMG_ID_GX_UFO_ROLE);
    }
    /* the fighter is exploding or shot */
    else
    {
        /* if the fighter is simply shot */
        if (g_gx_ufo_context.fighter_state == MMI_GX_UFO_HIT_STATE)
        {
            /* when the fighter is shot, re-draw the energy bar */
            if (g_gx_ufo_context.fighter_invincible == MMI_GX_UFO_INVINCIBLE_INTERVAL)
            {
                mmi_gx_ufo_draw_energy();
                gdi_image_draw_id(
                    g_gx_ufo_context.fighter_position_x,
                    g_gx_ufo_context.fighter_position_y,
                    IMG_ID_GX_UFO_ROLE_HIT);
                /* restore the weapon of the fighter back to 1 */
                if (g_gx_ufo_context.is_invisible == FALSE)
                {
                    g_gx_ufo_context.fighter_weapon = MMI_GX_UFO_BULLET_1;
                }
            }

            g_gx_ufo_context.fighter_invincible = g_gx_ufo_context.fighter_invincible - 1;
            /* when the invincible state is over, restore the fighter to normal state */
            if (g_gx_ufo_context.fighter_invincible == 0)
            {
                g_gx_ufo_context.fighter_state = MMI_GX_UFO_NORMAL_STATE;
                g_gx_ufo_context.is_invisible = FALSE;
            }
            /* flashing image when the fighter is in invincible state */
            if (g_gx_ufo_context.tick % 2 == 0 && g_gx_ufo_context.fighter_invincible != MMI_GX_UFO_INVINCIBLE_INTERVAL)
            {
                gdi_image_draw_id(
                    g_gx_ufo_context.fighter_position_x,
                    g_gx_ufo_context.fighter_position_y,
                    IMG_ID_GX_UFO_ROLE);
            }
        }
        /* if the fighter is exploding */
        else
        {
            /* explosion frame 1 */
            if (g_gx_ufo_context.fighter_state == MMI_GX_UFO_EXPLODING_STATE_1)
            {
                mmi_gx_ufo_draw_energy();
                gdi_image_draw_id(
                    g_gx_ufo_context.fighter_position_x,
                    g_gx_ufo_context.fighter_position_y,
                    IMG_ID_GX_UFO_FLAME_1);
                g_gx_ufo_context.fighter_state = MMI_GX_UFO_EXPLODING_STATE_2;
                g_gx_ufo_context.fighter_dying_time = g_gx_ufo_context.tick;
            }
            /* explosion frame 2 */
            else if (g_gx_ufo_context.fighter_state == MMI_GX_UFO_EXPLODING_STATE_2)
            {
                gdi_image_draw_id(
                    g_gx_ufo_context.fighter_position_x,
                    g_gx_ufo_context.fighter_position_y,
                    IMG_ID_GX_UFO_FLAME_2);
                g_gx_ufo_context.fighter_state = MMI_GX_UFO_EXPLODING_STATE_3;
            }
            /* explosion frame 3 */
            else if (g_gx_ufo_context.fighter_state == MMI_GX_UFO_EXPLODING_STATE_3)
            {
                gdi_image_draw_id(
                    g_gx_ufo_context.fighter_position_x,
                    g_gx_ufo_context.fighter_position_y,
                    IMG_ID_GX_UFO_FLAME_3);
                g_gx_ufo_context.fighter_state = MMI_GX_UFO_EXPLODING_STATE_END;
            }
            /* explosion end, draw nothing about the fighter */
            else if (g_gx_ufo_context.fighter_state == MMI_GX_UFO_EXPLODING_STATE_END)
            {
                /* DO NOTHING */
            }
        }
    }
    /* draw bullets of the fighter */
    for (bullet = g_gx_ufo_context.first_bullet; bullet != NULL && bullet != g_gx_ufo_context.first_empty_bullet_list;
         bullet = bullet->next)
    {
        for (i = 0; i < bullet->type; i++)
        {
            gdi_image_draw_id(bullet->x + i * MMI_GX_UFO_BULLET_WIDTH, bullet->y, IMG_ID_GX_UFO_ROLE_BULLET);
        }
    }

    /* draw LEVEL_CLRAE string */
    if (g_gx_ufo_context.stage_ending_time > 0)
    {
#ifndef __MMI_GAME_MULTI_LANGUAGE_SUPPORT__
    #if defined(__MMI_MAINLCD_128X160__) || defined(__MMI_MAINLCD_128X128__)
        gdi_image_draw_id(24, (MMI_GX_UFO_LCD_HEIGHT - MMI_GX_UFO_ORIGIN) / 2 - 10, IMG_ID_GX_UFO_LEVEL_CLEAR);
    #elif defined(__MMI_MAINLCD_176X220__)
        gdi_image_draw_id(34, (MMI_GX_UFO_LCD_HEIGHT - MMI_GX_UFO_ORIGIN) / 2 - 14, IMG_ID_GX_UFO_LEVEL_CLEAR);
    #endif 
#else
    #if defined(__MMI_MAINLCD_128X160__) || defined(__MMI_MAINLCD_128X128__)
        gdi_image_draw_id(
            24,
            (MMI_GX_UFO_LCD_HEIGHT - MMI_GX_UFO_ORIGIN) / 2 - 10, 
            mmi_gfx_get_multilanguage_image_ID(
                mmi_ufo_language_index, 
                IMG_ID_GX_UFO_LEVEL_CLEAR_LANGUAGE0, 
                MMI_UFO_STRING_COUNT, 
                MMI_UFO_STRING_LEVEL_CLEAR));
    #elif defined(__MMI_MAINLCD_176X220__)
        gdi_image_draw_id(
            34,
            (MMI_GX_UFO_LCD_HEIGHT - MMI_GX_UFO_ORIGIN) / 2 - 14, 
            mmi_gfx_get_multilanguage_image_ID(
                mmi_ufo_language_index, 
                IMG_ID_GX_UFO_LEVEL_CLEAR_LANGUAGE0, 
                MMI_UFO_STRING_COUNT, 
                MMI_UFO_STRING_LEVEL_CLEAR));
    #endif
#endif
        /* reset all states after 5 seconds after the ending */
        if (g_gx_ufo_context.tick - g_gx_ufo_context.stage_ending_time > 50)
        {
        #if defined(__MMI_MAINLCD_128X160__) || defined(__MMI_MAINLCD_128X128__)
            gdi_draw_solid_rect(
                24,
                (MMI_GX_UFO_LCD_HEIGHT - MMI_GX_UFO_ORIGIN) / 2 - 10,
                24 + 80 - 1,
                (MMI_GX_UFO_LCD_HEIGHT - MMI_GX_UFO_ORIGIN) / 2 - 10 + 39 - 1,
                MMI_GX_UFO_TRANSPARENT_COLOR);
        #elif defined(__MMI_MAINLCD_176X220__)
            gdi_draw_solid_rect(
                34,
                (MMI_GX_UFO_LCD_HEIGHT - MMI_GX_UFO_ORIGIN) / 2 - 14,
                34 + 109 - 1,
                (MMI_GX_UFO_LCD_HEIGHT - MMI_GX_UFO_ORIGIN) / 2 - 14 + 53 - 1,
                MMI_GX_UFO_TRANSPARENT_COLOR);
        #endif 
            g_gx_ufo_context.stage_count = g_gx_ufo_context.stage_count + 1;
            RESET_STATES();
        }
    }

    gdi_layer_blt(
        g_gx_ufo_context.background,    /* layer 0 */
        g_gx_ufo_context.foreground,    /* layer 1 */
        0,                              /* layer 2 */
        0,                              /* layer 3 */
        0,                              /* offset x */
        0,                              /* offset y */
        MMI_GX_UFO_LCD_WIDTH - 1,       /* width */
        MMI_GX_UFO_LCD_HEIGHT - 1);     /* height */

    gdi_layer_pop_clip();
    gdi_layer_set_active(g_gx_ufo_context.background);
}


/*****************************************************************************
 * FUNCTION
 *  mmi_gx_ufo_update_enemy_vector
 * DESCRIPTION
 *  Update the moving vector of the enemy according to its type
 * PARAMETERS
 *  enemy       [?]     The enemy to be updated
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_gx_ufo_update_enemy_vector(gx_ufo_enemy_struct *enemy)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    U8 horizontal_interval;
    U8 y_velocity;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    if (g_gx_ufo_context.is_boss_on != TRUE)
    {
    #if defined(__MMI_MAINLCD_128X160__) || defined(__MMI_MAINLCD_128X128__)
        y_velocity = 3;
    #elif defined(__MMI_MAINLCD_176X220__)
        y_velocity = 4;
    #endif 
    }
    else
    {
    #if defined(__MMI_MAINLCD_128X160__) || defined(__MMI_MAINLCD_128X128__)
        y_velocity = 4;
    #elif defined(__MMI_MAINLCD_176X220__)
        y_velocity = 6;
    #endif 
    }

    /* if the enemy is not alive, it should be exploding. Thus the moving vector should be identical to the background */
    if (enemy->life <= 0)
    {
        enemy->vector_x = 0;
        enemy->vector_y = MMI_GX_UFO_BACKGROUND_SPEED;
        return;
    }

    /* when the enemy is alive */
    if (enemy->move_type == MMI_GX_UFO_MOVE_TYPE_1)
    {
        enemy->vector_x = 0;
        enemy->vector_y = y_velocity;
    }
    else if (enemy->move_type == MMI_GX_UFO_MOVE_TYPE_2)
    {
    #if defined(__MMI_MAINLCD_128X160__) || defined(__MMI_MAINLCD_128X128__)
        enemy->vector_x = 1;
    #elif defined(__MMI_MAINLCD_176X220__)
        enemy->vector_x = 2;
    #endif 
        enemy->vector_y = y_velocity;
    }
    else if (enemy->move_type == MMI_GX_UFO_MOVE_TYPE_3)
    {
    #if defined(__MMI_MAINLCD_128X160__) || defined(__MMI_MAINLCD_128X128__)
        enemy->vector_x = -1;
    #elif defined(__MMI_MAINLCD_176X220__)
        enemy->vector_x = -2;
    #endif 
        enemy->vector_y = y_velocity;
    }
    else if (enemy->move_type == MMI_GX_UFO_MOVE_TYPE_4)
    {
        enemy->vector_y = y_velocity;
        if (enemy->x + enemy->vector_x > MMI_GX_UFO_LCD_WIDTH - MMI_GX_UFO_ENEMY_WIDTH ||
            enemy->x + enemy->vector_x < 0)
        {
            enemy->vector_x = -enemy->vector_x;
        }
    }
    else if (enemy->move_type == MMI_GX_UFO_MOVE_TYPE_5)
    {
        enemy->vector_y = y_velocity;
        if (enemy->x + enemy->vector_x > MMI_GX_UFO_LCD_WIDTH - MMI_GX_UFO_ENEMY_WIDTH ||
            enemy->x + enemy->vector_x < 0)
        {
            enemy->vector_x = -enemy->vector_x;
        }
    }
    else if (enemy->move_type == MMI_GX_UFO_MOVE_TYPE_6)
    {
    #if defined(__MMI_MAINLCD_128X160__) || defined(__MMI_MAINLCD_128X128__)
        horizontal_interval = rand() % 10;
    #elif defined(__MMI_MAINLCD_176X220__)
        horizontal_interval = rand() % 13;
    #endif 

    #if defined(__MMI_MAINLCD_128X160__) || defined(__MMI_MAINLCD_128X128__)
        if (g_gx_ufo_context.tick - enemy->starting_time < 20 + horizontal_interval)
    #elif defined(__MMI_MAINLCD_176X220__)
        if (g_gx_ufo_context.tick - enemy->starting_time < 27 + horizontal_interval)
    #endif 
        {
            enemy->vector_x = 0;
            enemy->vector_y = y_velocity;
        }
    #if defined(__MMI_MAINLCD_128X160__) || defined(__MMI_MAINLCD_128X128__)
        else if (g_gx_ufo_context.tick - enemy->starting_time > 30 + horizontal_interval)
    #elif defined(__MMI_MAINLCD_176X220__)
        else if (g_gx_ufo_context.tick - enemy->starting_time > 42 + horizontal_interval)
    #endif 
        {
            enemy->vector_x = 0;
            enemy->vector_y = -y_velocity;
        }
        else
        {
            enemy->vector_y = 0;
            enemy->vector_x = y_velocity;
        }
    }
    else if (enemy->move_type == MMI_GX_UFO_MOVE_TYPE_7)
    {
        horizontal_interval = rand() % 10;

    #if defined(__MMI_MAINLCD_128X160__) || defined(__MMI_MAINLCD_128X128__)
        if (g_gx_ufo_context.tick - enemy->starting_time < 30 + horizontal_interval)
    #elif defined(__MMI_MAINLCD_176X220__)
        if (g_gx_ufo_context.tick - enemy->starting_time < 41 + horizontal_interval)
    #endif 
        {
            enemy->vector_x = 0;
            enemy->vector_y = y_velocity;
        }
    #if defined(__MMI_MAINLCD_128X160__) || defined(__MMI_MAINLCD_128X128__)
        else if (g_gx_ufo_context.tick - enemy->starting_time > 40 + horizontal_interval)
    #elif defined(__MMI_MAINLCD_176X220__)
        else if (g_gx_ufo_context.tick - enemy->starting_time > 55 + horizontal_interval)
    #endif 
        {
            enemy->vector_x = 0;
            enemy->vector_y = -y_velocity;
        }
        else
        {
            enemy->vector_y = 0;
            enemy->vector_x = -y_velocity;
        }
    }
}


/*****************************************************************************
 * FUNCTION
 *  mmi_gx_ufo_get_enemy_position_x
 * DESCRIPTION
 *  Initialization of enemy position in x direction
 * PARAMETERS
 *  type        [IN]        The moving type of the enemy
 * RETURNS
 *  the position of enemy in x direction
 *****************************************************************************/
U8 mmi_gx_ufo_get_enemy_position_x(U8 type)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    U8 enemy_width;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    if (g_gx_ufo_context.is_boss_on == TRUE)
    {
        enemy_width = MMI_GX_UFO_BOSS_WIDTH;
    }
    else
    {
        enemy_width = MMI_GX_UFO_ENEMY_WIDTH;
    }

    switch (type)
    {
        case MMI_GX_UFO_MOVE_TYPE_1:
            return rand() % (MMI_GX_UFO_LCD_WIDTH - enemy_width);
        case MMI_GX_UFO_MOVE_TYPE_2:
            return rand() % (MMI_GX_UFO_LCD_WIDTH / 2 - enemy_width);
        case MMI_GX_UFO_MOVE_TYPE_3:
            return (rand() % (MMI_GX_UFO_LCD_WIDTH / 2 - enemy_width)) + MMI_GX_UFO_LCD_WIDTH / 2;
        case MMI_GX_UFO_MOVE_TYPE_4:
            return rand() % (MMI_GX_UFO_LCD_WIDTH / 2 - enemy_width);
        case MMI_GX_UFO_MOVE_TYPE_5:
            return (rand() % (MMI_GX_UFO_LCD_WIDTH / 2 - enemy_width)) + MMI_GX_UFO_LCD_WIDTH / 2;
        case MMI_GX_UFO_MOVE_TYPE_6:
            return rand() % (MMI_GX_UFO_LCD_WIDTH / 2 - enemy_width);
        case MMI_GX_UFO_MOVE_TYPE_7:
            return (rand() % (MMI_GX_UFO_LCD_WIDTH / 2 - enemy_width)) + MMI_GX_UFO_LCD_WIDTH / 2;
    }

    return 0;
}


/*****************************************************************************
 * FUNCTION
 *  mmi_gx_ufo_gameover
 * DESCRIPTION
 *  Gameover function
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_gx_ufo_gameover(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    g_gx_ufo_context.is_gameover = TRUE;
    g_gx_ufo_context.is_new_game = TRUE;
    /* call this function to draw gameover screen */
    mmi_gfx_entry_gameover_screen();
}


/*****************************************************************************
 * FUNCTION
 *  mmi_gx_ufo_cyclic_timer
 * DESCRIPTION
 *  Timer trigger function - looping
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_gx_ufo_cyclic_timer(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    g_gx_ufo_context.tick = g_gx_ufo_context.tick + 1;

    gui_start_timer(g_gx_ufo_context.timer_elapse, mmi_gx_ufo_cyclic_timer);

    if (g_gx_ufo_context.is_gameover == FALSE)
    {
        mmi_gx_ufo_framemove();
        mmi_gx_ufo_render();
    }
}


/*****************************************************************************
 * FUNCTION
 *  mmi_gx_ufo_key_2_press
 * DESCRIPTION
 *  Key handling
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_gx_ufo_key_2_press(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    g_gx_ufo_context.up_key_pressed = TRUE;
}


/*****************************************************************************
 * FUNCTION
 *  mmi_gx_ufo_key_2_release
 * DESCRIPTION
 *  Key handling
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_gx_ufo_key_2_release(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    g_gx_ufo_context.up_key_pressed = FALSE;
}


/*****************************************************************************
 * FUNCTION
 *  mmi_gx_ufo_key_4_press
 * DESCRIPTION
 *  Key handling
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_gx_ufo_key_4_press(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    g_gx_ufo_context.left_key_pressed = TRUE;
}


/*****************************************************************************
 * FUNCTION
 *  mmi_gx_ufo_key_4_release
 * DESCRIPTION
 *  Key handling
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_gx_ufo_key_4_release(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    g_gx_ufo_context.left_key_pressed = FALSE;
}


/*****************************************************************************
 * FUNCTION
 *  mmi_gx_ufo_key_6_press
 * DESCRIPTION
 *  Key handling
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_gx_ufo_key_6_press(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    g_gx_ufo_context.right_key_pressed = TRUE;
}


/*****************************************************************************
 * FUNCTION
 *  mmi_gx_ufo_key_6_release
 * DESCRIPTION
 *  Key handling
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_gx_ufo_key_6_release(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    g_gx_ufo_context.right_key_pressed = FALSE;
}


/*****************************************************************************
 * FUNCTION
 *  mmi_gx_ufo_key_8_press
 * DESCRIPTION
 *  Key handling
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_gx_ufo_key_8_press(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    g_gx_ufo_context.down_key_pressed = TRUE;
}


/*****************************************************************************
 * FUNCTION
 *  mmi_gx_ufo_key_8_release
 * DESCRIPTION
 *  Key handling
 * PARAMETERS
 *  void
 * RETURNS
 *  void
 *****************************************************************************/
void mmi_gx_ufo_key_8_release(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    g_gx_ufo_context.down_key_pressed = FALSE;
}

#endif  //__MMI_GAME_UFO__ 

